/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the location-2020-11-19.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.LocationService.Model
{
///
/// API Restrictions on the allowed actions, resources, and referers for an API key resource.
///
public partial class ApiKeyRestrictions
{
private List _allowActions = new List();
private List _allowReferers = new List();
private List _allowResources = new List();
///
/// Gets and sets the property 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.
///
///
///
[AWSProperty(Required=true, Min=1, Max=7)]
public List AllowActions
{
get { return this._allowActions; }
set { this._allowActions = value; }
}
// Check to see if AllowActions property is set
internal bool IsSetAllowActions()
{
return this._allowActions != null && this._allowActions.Count > 0;
}
///
/// Gets and sets the property 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
.
///
///
///
[AWSProperty(Min=1, Max=5)]
public List AllowReferers
{
get { return this._allowReferers; }
set { this._allowReferers = value; }
}
// Check to see if AllowReferers property is set
internal bool IsSetAllowReferers()
{
return this._allowReferers != null && this._allowReferers.Count > 0;
}
///
/// Gets and sets the property AllowResources.
///
/// 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).
///
///
[AWSProperty(Required=true, Min=1, Max=5)]
public List AllowResources
{
get { return this._allowResources; }
set { this._allowResources = value; }
}
// Check to see if AllowResources property is set
internal bool IsSetAllowResources()
{
return this._allowResources != null && this._allowResources.Count > 0;
}
}
}