/* * Copyright 2010-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.geo.model; import java.io.Serializable; /** *

* API Restrictions on the allowed actions, resources, and referers for an API * key resource. *

*/ public class ApiKeyRestrictions implements Serializable { /** *

* A list of allowed actions that an API key resource grants permissions to * perform *

* *

* Currently, the only valid action is geo:GetMap* as an input * to the list. For example, ["geo:GetMap*"] is valid but * ["geo:GetMapTile"] is not. *

*
*/ private java.util.List allowActions; /** *

* 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: *

* */ private java.util.List allowReferers; /** *

* A list of allowed resource ARNs that a API key bearer can perform actions * on *

*

* For more information about ARN format, see Amazon Resource Names (ARNs). *

* *

* In this preview, you can allow only map resources. *

*
*

* Requirements: *

* */ private java.util.List allowResources; /** *

* A list of allowed actions that an API key resource grants permissions to * perform *

* *

* Currently, the only valid action is geo:GetMap* as an input * to the list. For example, ["geo:GetMap*"] is valid but * ["geo:GetMapTile"] is not. *

*
* * @return

* A list of allowed actions that an API key resource grants * permissions to perform *

* *

* Currently, the only valid action is geo:GetMap* as * an input to the list. For example, ["geo:GetMap*"] * is valid but ["geo:GetMapTile"] is not. *

*
*/ public java.util.List getAllowActions() { return allowActions; } /** *

* A list of allowed actions that an API key resource grants permissions to * perform *

* *

* Currently, the only valid action is geo:GetMap* as an input * to the list. For example, ["geo:GetMap*"] is valid but * ["geo:GetMapTile"] is not. *

*
* * @param allowActions

* A list of allowed actions that an API key resource grants * permissions to perform *

* *

* Currently, the only valid action is geo:GetMap* * as an input to the list. For example, * ["geo:GetMap*"] is valid but * ["geo:GetMapTile"] is not. *

*
*/ public void setAllowActions(java.util.Collection allowActions) { if (allowActions == null) { this.allowActions = null; return; } this.allowActions = new java.util.ArrayList(allowActions); } /** *

* A list of allowed actions that an API key resource grants permissions to * perform *

* *

* Currently, the only valid action is geo:GetMap* as an input * to the list. For example, ["geo:GetMap*"] is valid but * ["geo:GetMapTile"] is not. *

*
*

* Returns a reference to this object so that method calls can be chained * together. * * @param allowActions

* A list of allowed actions that an API key resource grants * permissions to perform *

* *

* Currently, the only valid action is geo:GetMap* * as an input to the list. For example, * ["geo:GetMap*"] is valid but * ["geo:GetMapTile"] is not. *

*
* @return A reference to this updated object so that method calls can be * chained together. */ public ApiKeyRestrictions withAllowActions(String... allowActions) { if (getAllowActions() == null) { this.allowActions = new java.util.ArrayList(allowActions.length); } for (String value : allowActions) { this.allowActions.add(value); } return this; } /** *

* A list of allowed actions that an API key resource grants permissions to * perform *

* *

* Currently, the only valid action is geo:GetMap* as an input * to the list. For example, ["geo:GetMap*"] is valid but * ["geo:GetMapTile"] is not. *

*
*

* Returns a reference to this object so that method calls can be chained * together. * * @param allowActions

* A list of allowed actions that an API key resource grants * permissions to perform *

* *

* Currently, the only valid action is geo:GetMap* * as an input to the list. For example, * ["geo:GetMap*"] is valid but * ["geo:GetMapTile"] is not. *

*
* @return A reference to this updated object so that method calls can be * chained together. */ public ApiKeyRestrictions withAllowActions(java.util.Collection allowActions) { setAllowActions(allowActions); return this; } /** *

* 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. *

    *
  • *
* * @return

* 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. *

    *
  • *
*/ public java.util.List getAllowReferers() { return 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. *

    *
  • *
* * @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. *

    *
  • *
*/ public void setAllowReferers(java.util.Collection allowReferers) { if (allowReferers == null) { this.allowReferers = null; return; } this.allowReferers = new java.util.ArrayList(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. *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @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. *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public ApiKeyRestrictions withAllowReferers(String... allowReferers) { if (getAllowReferers() == null) { this.allowReferers = new java.util.ArrayList(allowReferers.length); } for (String value : allowReferers) { this.allowReferers.add(value); } return this; } /** *

* 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. *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @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. *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public ApiKeyRestrictions withAllowReferers(java.util.Collection allowReferers) { setAllowReferers(allowReferers); return this; } /** *

* A list of allowed resource ARNs that a API key bearer can perform actions * on *

*

* For more information about ARN format, see Amazon Resource Names (ARNs). *

* *

* In this preview, you can allow only map resources. *

*
*

* Requirements: *

*
    *
  • *

    * Must be prefixed with arn. *

    *
  • *
  • *

    * partition and service must not be empty and * should begin with only alphanumeric characters (A–Z, a–z, 0–9) and * contain only alphanumeric numbers, hyphens (-) and periods (.). *

    *
  • *
  • *

    * region and account-id can be empty or should * begin with only alphanumeric characters (A–Z, a–z, 0–9) and contain only * alphanumeric numbers, hyphens (-) and periods (.). *

    *
  • *
  • *

    * resource-id can begin with any character except for forward * slash (/) and contain any characters after, including forward slashes to * form a path. *

    *

    * resource-id can also include wildcard characters, denoted by * an asterisk (*). *

    *
  • *
  • *

    * arn, partition, service, * region, account-id and resource-id * must be delimited by a colon (:). *

    *
  • *
  • *

    * No spaces allowed. For example, * arn:aws:geo:region:account-id:map/ExampleMap*. *

    *
  • *
* * @return

* A list of allowed resource ARNs that a API key bearer can perform * actions on *

*

* For more information about ARN format, see Amazon Resource Names (ARNs). *

* *

* In this preview, you can allow only map resources. *

*
*

* Requirements: *

*
    *
  • *

    * Must be prefixed with arn. *

    *
  • *
  • *

    * partition and service must not be empty * and should begin with only alphanumeric characters (A–Z, a–z, * 0–9) and contain only alphanumeric numbers, hyphens (-) and * periods (.). *

    *
  • *
  • *

    * region and account-id can be empty or * should begin with only alphanumeric characters (A–Z, a–z, 0–9) * and contain only alphanumeric numbers, hyphens (-) and periods * (.). *

    *
  • *
  • *

    * resource-id can begin with any character except for * forward slash (/) and contain any characters after, including * forward slashes to form a path. *

    *

    * resource-id can also include wildcard characters, * denoted by an asterisk (*). *

    *
  • *
  • *

    * arn, partition, service, * region, account-id and * resource-id must be delimited by a colon (:). *

    *
  • *
  • *

    * No spaces allowed. For example, * arn:aws:geo:region:account-id:map/ExampleMap* * . *

    *
  • *
*/ public java.util.List getAllowResources() { return allowResources; } /** *

* A list of allowed resource ARNs that a API key bearer can perform actions * on *

*

* For more information about ARN format, see Amazon Resource Names (ARNs). *

* *

* In this preview, you can allow only map resources. *

*
*

* Requirements: *

*
    *
  • *

    * Must be prefixed with arn. *

    *
  • *
  • *

    * partition and service must not be empty and * should begin with only alphanumeric characters (A–Z, a–z, 0–9) and * contain only alphanumeric numbers, hyphens (-) and periods (.). *

    *
  • *
  • *

    * region and account-id can be empty or should * begin with only alphanumeric characters (A–Z, a–z, 0–9) and contain only * alphanumeric numbers, hyphens (-) and periods (.). *

    *
  • *
  • *

    * resource-id can begin with any character except for forward * slash (/) and contain any characters after, including forward slashes to * form a path. *

    *

    * resource-id can also include wildcard characters, denoted by * an asterisk (*). *

    *
  • *
  • *

    * arn, partition, service, * region, account-id and resource-id * must be delimited by a colon (:). *

    *
  • *
  • *

    * No spaces allowed. For example, * arn:aws:geo:region:account-id:map/ExampleMap*. *

    *
  • *
* * @param allowResources

* A list of allowed resource ARNs that a API key bearer can * perform actions on *

*

* For more information about ARN format, see Amazon Resource Names (ARNs). *

* *

* In this preview, you can allow only map resources. *

*
*

* Requirements: *

*
    *
  • *

    * Must be prefixed with arn. *

    *
  • *
  • *

    * partition and service must not be * empty and should begin with only alphanumeric characters (A–Z, * a–z, 0–9) and contain only alphanumeric numbers, hyphens (-) * and periods (.). *

    *
  • *
  • *

    * region and account-id can be empty * or should begin with only alphanumeric characters (A–Z, a–z, * 0–9) and contain only alphanumeric numbers, hyphens (-) and * periods (.). *

    *
  • *
  • *

    * resource-id can begin with any character except * for forward slash (/) and contain any characters after, * including forward slashes to form a path. *

    *

    * resource-id can also include wildcard characters, * denoted by an asterisk (*). *

    *
  • *
  • *

    * arn, partition, service, region, account-id and * resource-id must be delimited by a colon (:). *

    *
  • *
  • *

    * No spaces allowed. For example, * arn:aws:geo:region:account-id:map/ExampleMap* * . *

    *
  • *
*/ public void setAllowResources(java.util.Collection allowResources) { if (allowResources == null) { this.allowResources = null; return; } this.allowResources = new java.util.ArrayList(allowResources); } /** *

* A list of allowed resource ARNs that a API key bearer can perform actions * on *

*

* For more information about ARN format, see Amazon Resource Names (ARNs). *

* *

* In this preview, you can allow only map resources. *

*
*

* Requirements: *

*
    *
  • *

    * Must be prefixed with arn. *

    *
  • *
  • *

    * partition and service must not be empty and * should begin with only alphanumeric characters (A–Z, a–z, 0–9) and * contain only alphanumeric numbers, hyphens (-) and periods (.). *

    *
  • *
  • *

    * region and account-id can be empty or should * begin with only alphanumeric characters (A–Z, a–z, 0–9) and contain only * alphanumeric numbers, hyphens (-) and periods (.). *

    *
  • *
  • *

    * resource-id can begin with any character except for forward * slash (/) and contain any characters after, including forward slashes to * form a path. *

    *

    * resource-id can also include wildcard characters, denoted by * an asterisk (*). *

    *
  • *
  • *

    * arn, partition, service, * region, account-id and resource-id * must be delimited by a colon (:). *

    *
  • *
  • *

    * No spaces allowed. For example, * arn:aws:geo:region:account-id:map/ExampleMap*. *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param allowResources

* A list of allowed resource ARNs that a API key bearer can * perform actions on *

*

* For more information about ARN format, see Amazon Resource Names (ARNs). *

* *

* In this preview, you can allow only map resources. *

*
*

* Requirements: *

*
    *
  • *

    * Must be prefixed with arn. *

    *
  • *
  • *

    * partition and service must not be * empty and should begin with only alphanumeric characters (A–Z, * a–z, 0–9) and contain only alphanumeric numbers, hyphens (-) * and periods (.). *

    *
  • *
  • *

    * region and account-id can be empty * or should begin with only alphanumeric characters (A–Z, a–z, * 0–9) and contain only alphanumeric numbers, hyphens (-) and * periods (.). *

    *
  • *
  • *

    * resource-id can begin with any character except * for forward slash (/) and contain any characters after, * including forward slashes to form a path. *

    *

    * resource-id can also include wildcard characters, * denoted by an asterisk (*). *

    *
  • *
  • *

    * arn, partition, service, region, account-id and * resource-id must be delimited by a colon (:). *

    *
  • *
  • *

    * No spaces allowed. For example, * arn:aws:geo:region:account-id:map/ExampleMap* * . *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public ApiKeyRestrictions withAllowResources(String... allowResources) { if (getAllowResources() == null) { this.allowResources = new java.util.ArrayList(allowResources.length); } for (String value : allowResources) { this.allowResources.add(value); } return this; } /** *

* A list of allowed resource ARNs that a API key bearer can perform actions * on *

*

* For more information about ARN format, see Amazon Resource Names (ARNs). *

* *

* In this preview, you can allow only map resources. *

*
*

* Requirements: *

*
    *
  • *

    * Must be prefixed with arn. *

    *
  • *
  • *

    * partition and service must not be empty and * should begin with only alphanumeric characters (A–Z, a–z, 0–9) and * contain only alphanumeric numbers, hyphens (-) and periods (.). *

    *
  • *
  • *

    * region and account-id can be empty or should * begin with only alphanumeric characters (A–Z, a–z, 0–9) and contain only * alphanumeric numbers, hyphens (-) and periods (.). *

    *
  • *
  • *

    * resource-id can begin with any character except for forward * slash (/) and contain any characters after, including forward slashes to * form a path. *

    *

    * resource-id can also include wildcard characters, denoted by * an asterisk (*). *

    *
  • *
  • *

    * arn, partition, service, * region, account-id and resource-id * must be delimited by a colon (:). *

    *
  • *
  • *

    * No spaces allowed. For example, * arn:aws:geo:region:account-id:map/ExampleMap*. *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param allowResources

* A list of allowed resource ARNs that a API key bearer can * perform actions on *

*

* For more information about ARN format, see Amazon Resource Names (ARNs). *

* *

* In this preview, you can allow only map resources. *

*
*

* Requirements: *

*
    *
  • *

    * Must be prefixed with arn. *

    *
  • *
  • *

    * partition and service must not be * empty and should begin with only alphanumeric characters (A–Z, * a–z, 0–9) and contain only alphanumeric numbers, hyphens (-) * and periods (.). *

    *
  • *
  • *

    * region and account-id can be empty * or should begin with only alphanumeric characters (A–Z, a–z, * 0–9) and contain only alphanumeric numbers, hyphens (-) and * periods (.). *

    *
  • *
  • *

    * resource-id can begin with any character except * for forward slash (/) and contain any characters after, * including forward slashes to form a path. *

    *

    * resource-id can also include wildcard characters, * denoted by an asterisk (*). *

    *
  • *
  • *

    * arn, partition, service, region, account-id and * resource-id must be delimited by a colon (:). *

    *
  • *
  • *

    * No spaces allowed. For example, * arn:aws:geo:region:account-id:map/ExampleMap* * . *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public ApiKeyRestrictions withAllowResources(java.util.Collection allowResources) { setAllowResources(allowResources); return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getAllowActions() != null) sb.append("AllowActions: " + getAllowActions() + ","); if (getAllowReferers() != null) sb.append("AllowReferers: " + getAllowReferers() + ","); if (getAllowResources() != null) sb.append("AllowResources: " + getAllowResources()); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getAllowActions() == null) ? 0 : getAllowActions().hashCode()); hashCode = prime * hashCode + ((getAllowReferers() == null) ? 0 : getAllowReferers().hashCode()); hashCode = prime * hashCode + ((getAllowResources() == null) ? 0 : getAllowResources().hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof ApiKeyRestrictions == false) return false; ApiKeyRestrictions other = (ApiKeyRestrictions) obj; if (other.getAllowActions() == null ^ this.getAllowActions() == null) return false; if (other.getAllowActions() != null && other.getAllowActions().equals(this.getAllowActions()) == false) return false; if (other.getAllowReferers() == null ^ this.getAllowReferers() == null) return false; if (other.getAllowReferers() != null && other.getAllowReferers().equals(this.getAllowReferers()) == false) return false; if (other.getAllowResources() == null ^ this.getAllowResources() == null) return false; if (other.getAllowResources() != null && other.getAllowResources().equals(this.getAllowResources()) == false) return false; return true; } }