Class: AWSCDK::Location::CfnAPIKey::APIKeyRestrictionsProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
location/cfn_api_key.rb

Overview

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(allow_actions:, allow_resources:, allow_android_apps: nil, allow_apple_apps: nil, allow_referers: nil) ⇒ APIKeyRestrictionsProperty

Returns a new instance of APIKeyRestrictionsProperty.

Parameters:



704
705
706
707
708
709
710
711
712
713
714
715
# File 'location/cfn_api_key.rb', line 704

def initialize(allow_actions:, allow_resources:, allow_android_apps: nil, allow_apple_apps: nil, allow_referers: nil)
  @allow_actions = allow_actions
  Jsii::Type.check_type(@allow_actions, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "allowActions")
  @allow_resources = allow_resources
  Jsii::Type.check_type(@allow_resources, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "allowResources")
  @allow_android_apps = allow_android_apps
  Jsii::Type.check_type(@allow_android_apps, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfbG9jYXRpb24uQ2ZuQVBJS2V5LkFuZHJvaWRBcHBQcm9wZXJ0eSJ9XX19LCJraW5kIjoiYXJyYXkifX1dfX0=")), "allowAndroidApps") unless @allow_android_apps.nil?
  @allow_apple_apps = allow_apple_apps
  Jsii::Type.check_type(@allow_apple_apps, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfbG9jYXRpb24uQ2ZuQVBJS2V5LkFwcGxlQXBwUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "allowAppleApps") unless @allow_apple_apps.nil?
  @allow_referers = allow_referers
  Jsii::Type.check_type(@allow_referers, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "allowReferers") unless @allow_referers.nil?
end

Instance Attribute Details

#allow_actionsArray<String> (readonly)

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.
  • Enhanced Maps actions
  • geo-maps:GetTile - Allows getting map tiles for rendering.
  • geo-maps:GetStaticMap - Allows getting static map images.
  • Place actions
  • geo:SearchPlaceIndexForText - Allows finding geo coordinates of a known place.
  • geo:SearchPlaceIndexForPosition - Allows getting nearest address to geo coordinates.
  • geo:SearchPlaceIndexForSuggestions - Allows suggestions based on an incomplete or misspelled query.
  • geo:GetPlace - Allows getting details of a place.
  • Enhanced Places actions
  • geo-places:Autcomplete - Allows auto-completion of search text.
  • geo-places:Geocode - Allows finding geo coordinates of a known place.
  • geo-places:GetPlace - Allows getting details of a place.
  • geo-places:ReverseGeocode - Allows getting nearest address to geo coordinates.
  • geo-places:SearchNearby - Allows category based places search around geo coordinates.
  • geo-places:SearchText - Allows place or address search based on free-form text.
  • geo-places:Suggest - Allows suggestions based on an incomplete or misspelled query.
  • Route actions
  • geo:CalculateRoute - Allows point to point routing.
  • geo:CalculateRouteMatrix - Allows matrix routing.
  • Enhanced Routes actions
  • geo-routes:CalculateIsolines - Allows isoline calculation.
  • geo-routes:CalculateRoutes - Allows point to point routing.
  • geo-routes:CalculateRouteMatrix - Allows matrix routing.
  • geo-routes:OptimizeWaypoints - Allows computing the best sequence of waypoints.
  • geo-routes:SnapToRoads - Allows snapping GPS points to a likely route.

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:GetTile"] is not. Similarly, you cannot use ["geo:SearchPlaceIndexFor*"] - you must list each of the Place actions separately.



755
756
757
# File 'location/cfn_api_key.rb', line 755

def allow_actions
  @allow_actions
end

#allow_referersArray<String>? (readonly)

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 .


792
793
794
# File 'location/cfn_api_key.rb', line 792

def allow_referers
  @allow_referers
end

#allow_resourcesArray<String> (readonly)

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



767
768
769
# File 'location/cfn_api_key.rb', line 767

def allow_resources
  @allow_resources
end

Class Method Details

.jsii_propertiesObject



794
795
796
797
798
799
800
801
802
# File 'location/cfn_api_key.rb', line 794

def self.jsii_properties
  {
    :allow_actions => "allowActions",
    :allow_resources => "allowResources",
    :allow_android_apps => "allowAndroidApps",
    :allow_apple_apps => "allowAppleApps",
    :allow_referers => "allowReferers",
  }
end

Instance Method Details

#to_jsiiObject



804
805
806
807
808
809
810
811
812
813
814
# File 'location/cfn_api_key.rb', line 804

def to_jsii
  result = {}
  result.merge!({
    "allowActions" => @allow_actions,
    "allowResources" => @allow_resources,
    "allowAndroidApps" => @allow_android_apps,
    "allowAppleApps" => @allow_apple_apps,
    "allowReferers" => @allow_referers,
  })
  result.compact
end