Skip to content

ApiKeyRestrictions

Source code in docs_src/capo_location/types/api_key_restrictions.py
class ApiKeyRestrictions(TypedDict, closed=True):
    allow_actions: "capo_location.types.api_key_action_list.ApiKeyActionList"
    """<p>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.</p> <p>The following are valid values for the actions.</p> <ul> <li> <p> <b>Map actions</b> </p> <ul> <li> <p> <code>geo:GetMap*</code> - Allows all actions needed for map rendering.</p> </li> <li> <p> <code>geo-maps:GetTile</code> - Allows retrieving map tiles.</p> </li> <li> <p> <code>geo-maps:GetStaticMap</code> - Allows retrieving static map images.</p> </li> <li> <p> <code>geo-maps:*</code> - Allows all actions related to map functionalities.</p> </li> </ul> </li> <li> <p> <b>Place actions</b> </p> <ul> <li> <p> <code>geo:SearchPlaceIndexForText</code> - Allows geocoding.</p> </li> <li> <p> <code>geo:SearchPlaceIndexForPosition</code> - Allows reverse geocoding.</p> </li> <li> <p> <code>geo:SearchPlaceIndexForSuggestions</code> - Allows generating suggestions from text.</p> </li> <li> <p> <code>GetPlace</code> - Allows finding a place by place ID.</p> </li> <li> <p> <code>geo-places:Geocode</code> - Allows geocoding using place information.</p> </li> <li> <p> <code>geo-places:ReverseGeocode</code> - Allows reverse geocoding from location coordinates.</p> </li> <li> <p> <code>geo-places:SearchNearby</code> - Allows searching for places near a location.</p> </li> <li> <p> <code>geo-places:SearchText</code> - Allows searching for places based on text input.</p> </li> <li> <p> <code>geo-places:Autocomplete</code> - Allows auto-completion of place names based on text input.</p> </li> <li> <p> <code>geo-places:Suggest</code> - Allows generating suggestions for places based on partial input.</p> </li> <li> <p> <code>geo-places:GetPlace</code> - Allows finding a place by its ID.</p> </li> <li> <p> <code>geo-places:*</code> - Allows all actions related to place services.</p> </li> </ul> </li> <li> <p> <b>Route actions</b> </p> <ul> <li> <p> <code>geo:CalculateRoute</code> - Allows point to point routing.</p> </li> <li> <p> <code>geo:CalculateRouteMatrix</code> - Allows calculating a matrix of routes.</p> </li> <li> <p> <code>geo-routes:CalculateRoutes</code> - Allows calculating multiple routes between points.</p> </li> <li> <p> <code>geo-routes:CalculateRouteMatrix</code> - Allows calculating a matrix of routes between points.</p> </li> <li> <p> <code>geo-routes:CalculateIsolines</code> - Allows calculating isolines for a given area.</p> </li> <li> <p> <code>geo-routes:OptimizeWaypoints</code> - Allows optimizing the order of waypoints in a route.</p> </li> <li> <p> <code>geo-routes:SnapToRoads</code> - Allows snapping a route to the nearest roads.</p> </li> <li> <p> <code>geo-routes:*</code> - Allows all actions related to routing functionalities.</p> </li> </ul> </li> </ul> <note> <p>You must use these strings exactly. For example, to provide access to map rendering, the only valid action is <code>geo:GetMap*</code> as an input to the list. <code>["geo:GetMap*"]</code> is valid but <code>["geo:GetMapTile"]</code> is not. Similarly, you cannot use <code>["geo:SearchPlaceIndexFor*"]</code> - you must list each of the Place actions separately.</p> </note>"""
    allow_resources: "capo_location.types.geo_arn_list.GeoArnList"
    """<p>A list of allowed resource ARNs that a API key bearer can perform actions on.</p> <ul> <li> <p>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.</p> </li> <li> <p>The resources must be in the same <code>partition</code>, <code>region</code>, and <code>account-id</code> as the key that is being created.</p> </li> <li> <p>Other than wildcards, you must include the full ARN, including the <code>arn</code>, <code>partition</code>, <code>service</code>, <code>region</code>, <code>account-id</code> and <code>resource-id</code> delimited by colons (:).</p> </li> <li> <p>No spaces allowed, even with wildcards. For example, <code>arn:aws:geo:region:<i>account-id</i>:map/ExampleMap*</code>.</p> </li> </ul> <p>For more information about ARN format, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a>.</p>"""
    allow_referers: NotRequired[
        "capo_location.types.referer_pattern_list.RefererPatternList"
    ]
    r"""<p>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.</p> <p>Requirements:</p> <ul> <li> <p>Contain only alphanumeric characters (A–Z, a–z, 0–9) or any symbols in this list <code>$\-._+!*`(),;/?:@=&amp;</code> </p> </li> <li> <p>May contain a percent (%) if followed by 2 hexadecimal digits (A-F, a-f, 0-9); this is used for URL encoding purposes.</p> </li> <li> <p>May contain wildcard characters question mark (?) and asterisk (*).</p> <p>Question mark (?) will replace any single character (including hexadecimal digits).</p> <p>Asterisk (*) will replace any multiple characters (including multiple hexadecimal digits).</p> </li> <li> <p>No spaces allowed. For example, <code>https://example.com</code>.</p> </li> </ul>"""
    allow_android_apps: NotRequired[
        "capo_location.types.android_app_list.AndroidAppList"
    ]
    """<p>An optional list of allowed Android applications for which requests must originate from. Requests using this API key from other sources will not be allowed.</p>"""
    allow_apple_apps: NotRequired["capo_location.types.apple_app_list.AppleAppList"]
    """<p>An optional list of allowed Apple applications for which requests must originate from. Requests using this API key from other sources will not be allowed.</p>"""

allow_actions instance-attribute

allow_actions: ApiKeyActionList

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.

    • geo-maps:GetTile - Allows retrieving map tiles.

    • geo-maps:GetStaticMap - Allows retrieving static map images.

    • geo-maps:* - Allows all actions related to map functionalities.

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

    • geo-places:Geocode - Allows geocoding using place information.

    • geo-places:ReverseGeocode - Allows reverse geocoding from location coordinates.

    • geo-places:SearchNearby - Allows searching for places near a location.

    • geo-places:SearchText - Allows searching for places based on text input.

    • geo-places:Autocomplete - Allows auto-completion of place names based on text input.

    • geo-places:Suggest - Allows generating suggestions for places based on partial input.

    • geo-places:GetPlace - Allows finding a place by its ID.

    • geo-places:* - Allows all actions related to place services.

  • Route actions

    • geo:CalculateRoute - Allows point to point routing.

    • geo:CalculateRouteMatrix - Allows calculating a matrix of routes.

    • geo-routes:CalculateRoutes - Allows calculating multiple routes between points.

    • geo-routes:CalculateRouteMatrix - Allows calculating a matrix of routes between points.

    • geo-routes:CalculateIsolines - Allows calculating isolines for a given area.

    • geo-routes:OptimizeWaypoints - Allows optimizing the order of waypoints in a route.

    • geo-routes:SnapToRoads - Allows snapping a route to the nearest roads.

    • geo-routes:* - Allows all actions related to routing functionalities.

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.

allow_android_apps instance-attribute

allow_android_apps: NotRequired[AndroidAppList]

An optional list of allowed Android applications for which requests must originate from. Requests using this API key from other sources will not be allowed.

allow_apple_apps instance-attribute

allow_apple_apps: NotRequired[AppleAppList]

An optional list of allowed Apple applications for which requests must originate from. Requests using this API key from other sources will not be allowed.

allow_referers instance-attribute

allow_referers: NotRequired[RefererPatternList]

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.

allow_resources instance-attribute

allow_resources: GeoArnList

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