/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.location.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* API Restrictions on the allowed actions, resources, and referers for an API key resource. *
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class ApiKeyRestrictions implements Serializable, Cloneable, StructuredPojo { /** ** A list of allowed actions that an API key resource grants permissions to perform. You must have at least one * action for each type of resource. For example, if you have a place resource, you must include at least one place * action. *
** The following are valid values for the actions. *
** Map actions *
*
* geo:GetMap*
- Allows all actions needed for map rendering.
*
* Place actions *
*
* geo:SearchPlaceIndexForText
- Allows geocoding.
*
* geo:SearchPlaceIndexForPosition
- Allows reverse geocoding.
*
* geo:SearchPlaceIndexForSuggestions
- Allows generating suggestions from text.
*
* GetPlace
- Allows finding a place by place ID.
*
* Route actions *
*
* geo:CalculateRoute
- Allows point to point routing.
*
* geo:CalculateRouteMatrix
- Allows calculating a matrix of routes.
*
* You must use these strings exactly. For example, to provide access to map rendering, the only valid action is
* geo:GetMap*
as an input to the list. ["geo:GetMap*"]
is valid but
* ["geo:GetMapTile"]
is not. Similarly, you cannot use ["geo:SearchPlaceIndexFor*"]
- you
* must list each of the Place actions separately.
*
* An optional list of allowed HTTP referers for which requests must originate from. Requests using this API key * from other domains will not be allowed. *
** Requirements: *
*
* Contain only alphanumeric characters (A–Z, a–z, 0–9) or any symbols in this list
* $\-._+!*`(),;/?:@=&
*
* May contain a percent (%) if followed by 2 hexadecimal digits (A-F, a-f, 0-9); this is used for URL encoding * purposes. *
** May contain wildcard characters question mark (?) and asterisk (*). *
** Question mark (?) will replace any single character (including hexadecimal digits). *
** Asterisk (*) will replace any multiple characters (including multiple hexadecimal digits). *
*
* No spaces allowed. For example, https://example.com
.
*
* A list of allowed resource ARNs that a API key bearer can perform actions on. *
** The ARN must be the correct ARN for a map, place, or route ARN. You may include wildcards in the resource-id to * match multiple resources of the same type. *
*
* The resources must be in the same partition
, region
, and account-id
as the
* key that is being created.
*
* Other than wildcards, you must include the full ARN, including the arn
, partition
,
* service
, region
, account-id
and resource-id
, delimited by
* colons (:).
*
* No spaces allowed, even with wildcards. For example,
* arn:aws:geo:region:account-id:map/ExampleMap*
.
*
* For more information about ARN format, see Amazon Resource Names * (ARNs). *
*/ private java.util.List* A list of allowed actions that an API key resource grants permissions to perform. You must have at least one * action for each type of resource. For example, if you have a place resource, you must include at least one place * action. *
** The following are valid values for the actions. *
** Map actions *
*
* geo:GetMap*
- Allows all actions needed for map rendering.
*
* Place actions *
*
* geo:SearchPlaceIndexForText
- Allows geocoding.
*
* geo:SearchPlaceIndexForPosition
- Allows reverse geocoding.
*
* geo:SearchPlaceIndexForSuggestions
- Allows generating suggestions from text.
*
* GetPlace
- Allows finding a place by place ID.
*
* Route actions *
*
* geo:CalculateRoute
- Allows point to point routing.
*
* geo:CalculateRouteMatrix
- Allows calculating a matrix of routes.
*
* You must use these strings exactly. For example, to provide access to map rendering, the only valid action is
* geo:GetMap*
as an input to the list. ["geo:GetMap*"]
is valid but
* ["geo:GetMapTile"]
is not. Similarly, you cannot use ["geo:SearchPlaceIndexFor*"]
- you
* must list each of the Place actions separately.
*
* The following are valid values for the actions. *
** Map actions *
*
* geo:GetMap*
- Allows all actions needed for map rendering.
*
* Place actions *
*
* geo:SearchPlaceIndexForText
- Allows geocoding.
*
* geo:SearchPlaceIndexForPosition
- Allows reverse geocoding.
*
* geo:SearchPlaceIndexForSuggestions
- Allows generating suggestions from text.
*
* GetPlace
- Allows finding a place by place ID.
*
* Route actions *
*
* geo:CalculateRoute
- Allows point to point routing.
*
* geo:CalculateRouteMatrix
- Allows calculating a matrix of routes.
*
* You must use these strings exactly. For example, to provide access to map rendering, the only valid
* action is geo:GetMap*
as an input to the list. ["geo:GetMap*"]
is valid but
* ["geo:GetMapTile"]
is not. Similarly, you cannot use
* ["geo:SearchPlaceIndexFor*"]
- you must list each of the Place actions separately.
*
* A list of allowed actions that an API key resource grants permissions to perform. You must have at least one * action for each type of resource. For example, if you have a place resource, you must include at least one place * action. *
** The following are valid values for the actions. *
** Map actions *
*
* geo:GetMap*
- Allows all actions needed for map rendering.
*
* Place actions *
*
* geo:SearchPlaceIndexForText
- Allows geocoding.
*
* geo:SearchPlaceIndexForPosition
- Allows reverse geocoding.
*
* geo:SearchPlaceIndexForSuggestions
- Allows generating suggestions from text.
*
* GetPlace
- Allows finding a place by place ID.
*
* Route actions *
*
* geo:CalculateRoute
- Allows point to point routing.
*
* geo:CalculateRouteMatrix
- Allows calculating a matrix of routes.
*
* You must use these strings exactly. For example, to provide access to map rendering, the only valid action is
* geo:GetMap*
as an input to the list. ["geo:GetMap*"]
is valid but
* ["geo:GetMapTile"]
is not. Similarly, you cannot use ["geo:SearchPlaceIndexFor*"]
- you
* must list each of the Place actions separately.
*
* The following are valid values for the actions. *
** Map actions *
*
* geo:GetMap*
- Allows all actions needed for map rendering.
*
* Place actions *
*
* geo:SearchPlaceIndexForText
- Allows geocoding.
*
* geo:SearchPlaceIndexForPosition
- Allows reverse geocoding.
*
* geo:SearchPlaceIndexForSuggestions
- Allows generating suggestions from text.
*
* GetPlace
- Allows finding a place by place ID.
*
* Route actions *
*
* geo:CalculateRoute
- Allows point to point routing.
*
* geo:CalculateRouteMatrix
- Allows calculating a matrix of routes.
*
* You must use these strings exactly. For example, to provide access to map rendering, the only valid action
* is geo:GetMap*
as an input to the list. ["geo:GetMap*"]
is valid but
* ["geo:GetMapTile"]
is not. Similarly, you cannot use
* ["geo:SearchPlaceIndexFor*"]
- you must list each of the Place actions separately.
*
* A list of allowed actions that an API key resource grants permissions to perform. You must have at least one * action for each type of resource. For example, if you have a place resource, you must include at least one place * action. *
** The following are valid values for the actions. *
** Map actions *
*
* geo:GetMap*
- Allows all actions needed for map rendering.
*
* Place actions *
*
* geo:SearchPlaceIndexForText
- Allows geocoding.
*
* geo:SearchPlaceIndexForPosition
- Allows reverse geocoding.
*
* geo:SearchPlaceIndexForSuggestions
- Allows generating suggestions from text.
*
* GetPlace
- Allows finding a place by place ID.
*
* Route actions *
*
* geo:CalculateRoute
- Allows point to point routing.
*
* geo:CalculateRouteMatrix
- Allows calculating a matrix of routes.
*
* You must use these strings exactly. For example, to provide access to map rendering, the only valid action is
* geo:GetMap*
as an input to the list. ["geo:GetMap*"]
is valid but
* ["geo:GetMapTile"]
is not. Similarly, you cannot use ["geo:SearchPlaceIndexFor*"]
- you
* must list each of the Place actions separately.
*
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setAllowActions(java.util.Collection)} or {@link #withAllowActions(java.util.Collection)} if you want to * override the existing values. *
* * @param allowActions * A list of allowed actions that an API key resource grants permissions to perform. You must have at least * one action for each type of resource. For example, if you have a place resource, you must include at least * one place action. ** The following are valid values for the actions. *
** Map actions *
*
* geo:GetMap*
- Allows all actions needed for map rendering.
*
* Place actions *
*
* geo:SearchPlaceIndexForText
- Allows geocoding.
*
* geo:SearchPlaceIndexForPosition
- Allows reverse geocoding.
*
* geo:SearchPlaceIndexForSuggestions
- Allows generating suggestions from text.
*
* GetPlace
- Allows finding a place by place ID.
*
* Route actions *
*
* geo:CalculateRoute
- Allows point to point routing.
*
* geo:CalculateRouteMatrix
- Allows calculating a matrix of routes.
*
* You must use these strings exactly. For example, to provide access to map rendering, the only valid action
* is geo:GetMap*
as an input to the list. ["geo:GetMap*"]
is valid but
* ["geo:GetMapTile"]
is not. Similarly, you cannot use
* ["geo:SearchPlaceIndexFor*"]
- you must list each of the Place actions separately.
*
* A list of allowed actions that an API key resource grants permissions to perform. You must have at least one * action for each type of resource. For example, if you have a place resource, you must include at least one place * action. *
** The following are valid values for the actions. *
** Map actions *
*
* geo:GetMap*
- Allows all actions needed for map rendering.
*
* Place actions *
*
* geo:SearchPlaceIndexForText
- Allows geocoding.
*
* geo:SearchPlaceIndexForPosition
- Allows reverse geocoding.
*
* geo:SearchPlaceIndexForSuggestions
- Allows generating suggestions from text.
*
* GetPlace
- Allows finding a place by place ID.
*
* Route actions *
*
* geo:CalculateRoute
- Allows point to point routing.
*
* geo:CalculateRouteMatrix
- Allows calculating a matrix of routes.
*
* You must use these strings exactly. For example, to provide access to map rendering, the only valid action is
* geo:GetMap*
as an input to the list. ["geo:GetMap*"]
is valid but
* ["geo:GetMapTile"]
is not. Similarly, you cannot use ["geo:SearchPlaceIndexFor*"]
- you
* must list each of the Place actions separately.
*
* The following are valid values for the actions. *
** Map actions *
*
* geo:GetMap*
- Allows all actions needed for map rendering.
*
* Place actions *
*
* geo:SearchPlaceIndexForText
- Allows geocoding.
*
* geo:SearchPlaceIndexForPosition
- Allows reverse geocoding.
*
* geo:SearchPlaceIndexForSuggestions
- Allows generating suggestions from text.
*
* GetPlace
- Allows finding a place by place ID.
*
* Route actions *
*
* geo:CalculateRoute
- Allows point to point routing.
*
* geo:CalculateRouteMatrix
- Allows calculating a matrix of routes.
*
* You must use these strings exactly. For example, to provide access to map rendering, the only valid action
* is geo:GetMap*
as an input to the list. ["geo:GetMap*"]
is valid but
* ["geo:GetMapTile"]
is not. Similarly, you cannot use
* ["geo:SearchPlaceIndexFor*"]
- you must list each of the Place actions separately.
*
* An optional list of allowed HTTP referers for which requests must originate from. Requests using this API key * from other domains will not be allowed. *
** Requirements: *
*
* Contain only alphanumeric characters (A–Z, a–z, 0–9) or any symbols in this list
* $\-._+!*`(),;/?:@=&
*
* May contain a percent (%) if followed by 2 hexadecimal digits (A-F, a-f, 0-9); this is used for URL encoding * purposes. *
** May contain wildcard characters question mark (?) and asterisk (*). *
** Question mark (?) will replace any single character (including hexadecimal digits). *
** Asterisk (*) will replace any multiple characters (including multiple hexadecimal digits). *
*
* No spaces allowed. For example, https://example.com
.
*
* Requirements: *
*
* Contain only alphanumeric characters (A–Z, a–z, 0–9) or any symbols in this list
* $\-._+!*`(),;/?:@=&
*
* May contain a percent (%) if followed by 2 hexadecimal digits (A-F, a-f, 0-9); this is used for URL * encoding purposes. *
** May contain wildcard characters question mark (?) and asterisk (*). *
** Question mark (?) will replace any single character (including hexadecimal digits). *
** Asterisk (*) will replace any multiple characters (including multiple hexadecimal digits). *
*
* No spaces allowed. For example, https://example.com
.
*
* An optional list of allowed HTTP referers for which requests must originate from. Requests using this API key * from other domains will not be allowed. *
** Requirements: *
*
* Contain only alphanumeric characters (A–Z, a–z, 0–9) or any symbols in this list
* $\-._+!*`(),;/?:@=&
*
* May contain a percent (%) if followed by 2 hexadecimal digits (A-F, a-f, 0-9); this is used for URL encoding * purposes. *
** May contain wildcard characters question mark (?) and asterisk (*). *
** Question mark (?) will replace any single character (including hexadecimal digits). *
** Asterisk (*) will replace any multiple characters (including multiple hexadecimal digits). *
*
* No spaces allowed. For example, https://example.com
.
*
* Requirements: *
*
* Contain only alphanumeric characters (A–Z, a–z, 0–9) or any symbols in this list
* $\-._+!*`(),;/?:@=&
*
* May contain a percent (%) if followed by 2 hexadecimal digits (A-F, a-f, 0-9); this is used for URL * encoding purposes. *
** May contain wildcard characters question mark (?) and asterisk (*). *
** Question mark (?) will replace any single character (including hexadecimal digits). *
** Asterisk (*) will replace any multiple characters (including multiple hexadecimal digits). *
*
* No spaces allowed. For example, https://example.com
.
*
* An optional list of allowed HTTP referers for which requests must originate from. Requests using this API key * from other domains will not be allowed. *
** Requirements: *
*
* Contain only alphanumeric characters (A–Z, a–z, 0–9) or any symbols in this list
* $\-._+!*`(),;/?:@=&
*
* May contain a percent (%) if followed by 2 hexadecimal digits (A-F, a-f, 0-9); this is used for URL encoding * purposes. *
** May contain wildcard characters question mark (?) and asterisk (*). *
** Question mark (?) will replace any single character (including hexadecimal digits). *
** Asterisk (*) will replace any multiple characters (including multiple hexadecimal digits). *
*
* No spaces allowed. For example, https://example.com
.
*
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setAllowReferers(java.util.Collection)} or {@link #withAllowReferers(java.util.Collection)} if you want * to override the existing values. *
* * @param allowReferers * An optional list of allowed HTTP referers for which requests must originate from. Requests using this API * key from other domains will not be allowed. ** Requirements: *
*
* Contain only alphanumeric characters (A–Z, a–z, 0–9) or any symbols in this list
* $\-._+!*`(),;/?:@=&
*
* May contain a percent (%) if followed by 2 hexadecimal digits (A-F, a-f, 0-9); this is used for URL * encoding purposes. *
** May contain wildcard characters question mark (?) and asterisk (*). *
** Question mark (?) will replace any single character (including hexadecimal digits). *
** Asterisk (*) will replace any multiple characters (including multiple hexadecimal digits). *
*
* No spaces allowed. For example, https://example.com
.
*
* An optional list of allowed HTTP referers for which requests must originate from. Requests using this API key * from other domains will not be allowed. *
** Requirements: *
*
* Contain only alphanumeric characters (A–Z, a–z, 0–9) or any symbols in this list
* $\-._+!*`(),;/?:@=&
*
* May contain a percent (%) if followed by 2 hexadecimal digits (A-F, a-f, 0-9); this is used for URL encoding * purposes. *
** May contain wildcard characters question mark (?) and asterisk (*). *
** Question mark (?) will replace any single character (including hexadecimal digits). *
** Asterisk (*) will replace any multiple characters (including multiple hexadecimal digits). *
*
* No spaces allowed. For example, https://example.com
.
*
* Requirements: *
*
* Contain only alphanumeric characters (A–Z, a–z, 0–9) or any symbols in this list
* $\-._+!*`(),;/?:@=&
*
* May contain a percent (%) if followed by 2 hexadecimal digits (A-F, a-f, 0-9); this is used for URL * encoding purposes. *
** May contain wildcard characters question mark (?) and asterisk (*). *
** Question mark (?) will replace any single character (including hexadecimal digits). *
** Asterisk (*) will replace any multiple characters (including multiple hexadecimal digits). *
*
* No spaces allowed. For example, https://example.com
.
*
* A list of allowed resource ARNs that a API key bearer can perform actions on. *
** The ARN must be the correct ARN for a map, place, or route ARN. You may include wildcards in the resource-id to * match multiple resources of the same type. *
*
* The resources must be in the same partition
, region
, and account-id
as the
* key that is being created.
*
* Other than wildcards, you must include the full ARN, including the arn
, partition
,
* service
, region
, account-id
and resource-id
, delimited by
* colons (:).
*
* No spaces allowed, even with wildcards. For example,
* arn:aws:geo:region:account-id:map/ExampleMap*
.
*
* For more information about ARN format, see Amazon Resource Names * (ARNs). *
* * @return A list of allowed resource ARNs that a API key bearer can perform actions on. ** The ARN must be the correct ARN for a map, place, or route ARN. You may include wildcards in the * resource-id to match multiple resources of the same type. *
*
* The resources must be in the same partition
, region
, and
* account-id
as the key that is being created.
*
* Other than wildcards, you must include the full ARN, including the arn
,
* partition
, service
, region
, account-id
and
* resource-id
, delimited by colons (:).
*
* No spaces allowed, even with wildcards. For example,
* arn:aws:geo:region:account-id:map/ExampleMap*
.
*
* For more information about ARN format, see Amazon Resource Names
* (ARNs).
*/
public java.util.List
* A list of allowed resource ARNs that a API key bearer can perform actions on.
*
* The ARN must be the correct ARN for a map, place, or route ARN. You may include wildcards in the resource-id to
* match multiple resources of the same type.
*
* The resources must be in the same
* Other than wildcards, you must include the full ARN, including the
* No spaces allowed, even with wildcards. For example,
*
* For more information about ARN format, see Amazon Resource Names
* (ARNs).
*
*
* partition
, region
, and account-id
as the
* key that is being created.
* arn
, partition
,
* service
, region
, account-id
and resource-id
, delimited by
* colons (:).
* arn:aws:geo:region:account-id:map/ExampleMap*
.
*
* The ARN must be the correct ARN for a map, place, or route ARN. You may include wildcards in the * resource-id to match multiple resources of the same type. *
*
* The resources must be in the same partition
, region
, and account-id
* as the key that is being created.
*
* Other than wildcards, you must include the full ARN, including the arn
,
* partition
, service
, region
, account-id
and
* resource-id
, delimited by colons (:).
*
* No spaces allowed, even with wildcards. For example,
* arn:aws:geo:region:account-id:map/ExampleMap*
.
*
* For more information about ARN format, see Amazon Resource Names
* (ARNs).
*/
public void setAllowResources(java.util.Collection
* A list of allowed resource ARNs that a API key bearer can perform actions on.
*
* The ARN must be the correct ARN for a map, place, or route ARN. You may include wildcards in the resource-id to
* match multiple resources of the same type.
*
* The resources must be in the same
* Other than wildcards, you must include the full ARN, including the
* No spaces allowed, even with wildcards. For example,
*
* For more information about ARN format, see Amazon Resource Names
* (ARNs).
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setAllowResources(java.util.Collection)} or {@link #withAllowResources(java.util.Collection)} if you want
* to override the existing values.
*
*
* partition
, region
, and account-id
as the
* key that is being created.
* arn
, partition
,
* service
, region
, account-id
and resource-id
, delimited by
* colons (:).
* arn:aws:geo:region:account-id:map/ExampleMap*
.
*
* The ARN must be the correct ARN for a map, place, or route ARN. You may include wildcards in the * resource-id to match multiple resources of the same type. *
*
* The resources must be in the same partition
, region
, and account-id
* as the key that is being created.
*
* Other than wildcards, you must include the full ARN, including the arn
,
* partition
, service
, region
, account-id
and
* resource-id
, delimited by colons (:).
*
* No spaces allowed, even with wildcards. For example,
* arn:aws:geo:region:account-id:map/ExampleMap*
.
*
* For more information about ARN format, see Amazon Resource Names
* (ARNs).
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ApiKeyRestrictions withAllowResources(String... allowResources) {
if (this.allowResources == null) {
setAllowResources(new java.util.ArrayList
* A list of allowed resource ARNs that a API key bearer can perform actions on.
*
* The ARN must be the correct ARN for a map, place, or route ARN. You may include wildcards in the resource-id to
* match multiple resources of the same type.
*
* The resources must be in the same
* Other than wildcards, you must include the full ARN, including the
* No spaces allowed, even with wildcards. For example,
*
* For more information about ARN format, see Amazon Resource Names
* (ARNs).
*
*
* partition
, region
, and account-id
as the
* key that is being created.
* arn
, partition
,
* service
, region
, account-id
and resource-id
, delimited by
* colons (:).
* arn:aws:geo:region:account-id:map/ExampleMap*
.
*
* The ARN must be the correct ARN for a map, place, or route ARN. You may include wildcards in the * resource-id to match multiple resources of the same type. *
*
* The resources must be in the same partition
, region
, and account-id
* as the key that is being created.
*
* Other than wildcards, you must include the full ARN, including the arn
,
* partition
, service
, region
, account-id
and
* resource-id
, delimited by colons (:).
*
* No spaces allowed, even with wildcards. For example,
* arn:aws:geo:region:account-id:map/ExampleMap*
.
*
* For more information about ARN format, see Amazon Resource Names
* (ARNs).
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ApiKeyRestrictions withAllowResources(java.util.Collection