:doc:`LocationService <../../location>` / Client / list_keys

*********
list_keys
*********



.. py:method:: LocationService.Client.list_keys(**kwargs)

  

  Lists API key resources in your Amazon Web Services account.

   

  For more information, see `Use API keys to authenticate <https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html>`__ in the *Amazon Location Service Developer Guide*.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListKeys>`_  


  **Request Syntax**
  ::

    response = client.list_keys(
        MaxResults=123,
        NextToken='string',
        Filter={
            'KeyStatus': 'Active'|'Expired'
        }
    )
    
  :type MaxResults: integer
  :param MaxResults: 

    An optional limit for the number of resources returned in a single call.

     

    Default value: ``100``

    

  
  :type NextToken: string
  :param NextToken: 

    The pagination token specifying which page of results to return in the response. If no token is provided, the default page is the first page.

     

    Default value: ``null``

    

  
  :type Filter: dict
  :param Filter: 

    Optionally filter the list to only ``Active`` or ``Expired`` API keys.

    

  
    - **KeyStatus** *(string) --* 

      Filter on ``Active`` or ``Expired`` API keys.

      

    
  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'Entries': [
              {
                  'KeyName': 'string',
                  'ExpireTime': datetime(2015, 1, 1),
                  'Description': 'string',
                  'Restrictions': {
                      'AllowActions': [
                          'string',
                      ],
                      'AllowResources': [
                          'string',
                      ],
                      'AllowReferers': [
                          'string',
                      ],
                      'AllowAndroidApps': [
                          {
                              'Package': 'string',
                              'CertificateFingerprint': 'string'
                          },
                      ],
                      'AllowAppleApps': [
                          {
                              'BundleId': 'string'
                          },
                      ]
                  },
                  'CreateTime': datetime(2015, 1, 1),
                  'UpdateTime': datetime(2015, 1, 1)
              },
          ],
          'NextToken': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **Entries** *(list) --* 

        Contains API key resources in your Amazon Web Services account. Details include API key name, allowed referers and timestamp for when the API key will expire.

        
        

        - *(dict) --* 

          An API key resource listed in your Amazon Web Services account.

          
          

          - **KeyName** *(string) --* 

            The name of the API key resource.

            
          

          - **ExpireTime** *(datetime) --* 

            The timestamp for when the API key resource will expire, in `ISO 8601 <https://www.iso.org/iso-8601-date-and-time-format.html>`__ format: ``YYYY-MM-DDThh:mm:ss.sssZ``.

            
          

          - **Description** *(string) --* 

            The optional description for the API key resource.

            
          

          - **Restrictions** *(dict) --* 

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

            
            

            - **AllowActions** *(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.
                 
                * ``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.
                

              
              

               

              .. note::

                

                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.

                

              
              

              - *(string) --* 
          
            

            - **AllowResources** *(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 ``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) <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html>`__.

              
              

              - *(string) --* 
          
            

            - **AllowReferers** *(list) --* 

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

              
              

              - *(string) --* 
          
            

            - **AllowAndroidApps** *(list) --* 

              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.

              
              

              - *(dict) --* 

                Unique identifying information for an Android app. Consists of a package name and a 20 byte SHA-1 certificate fingerprint.

                
                

                - **Package** *(string) --* 

                  Unique package name for an Android app.

                  
                

                - **CertificateFingerprint** *(string) --* 

                  20 byte SHA-1 certificate fingerprint associated with the Android app signing certificate.

                  
            
          
            

            - **AllowAppleApps** *(list) --* 

              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.

              
              

              - *(dict) --* 

                Unique identifying information for an Apple app (iOS, macOS, tvOS and watchOS). Consists of an Apple Bundle ID.

                
                

                - **BundleId** *(string) --* 

                  The unique identifier of the app across all Apple platforms (iOS, macOS, tvOS, watchOS, etc.)

                  
            
          
        
          

          - **CreateTime** *(datetime) --* 

            The timestamp of when the API key was created, in `ISO 8601 <https://www.iso.org/iso-8601-date-and-time-format.html>`__ format: ``YYYY-MM-DDThh:mm:ss.sssZ``.

            
          

          - **UpdateTime** *(datetime) --* 

            The timestamp of when the API key was last updated, in `ISO 8601 <https://www.iso.org/iso-8601-date-and-time-format.html>`__ format: ``YYYY-MM-DDThh:mm:ss.sssZ``.

            
      
    
      

      - **NextToken** *(string) --* 

        A pagination token indicating there are additional pages available. You can use the token in a following request to fetch the next set of results.

        
  
  **Exceptions**
  
  *   :py:class:`LocationService.Client.exceptions.InternalServerException`

  
  *   :py:class:`LocationService.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`LocationService.Client.exceptions.ValidationException`

  
  *   :py:class:`LocationService.Client.exceptions.ThrottlingException`

  