:doc:`IoT <../../iot>` / Client / get_indexing_configuration

**************************
get_indexing_configuration
**************************



.. py:method:: IoT.Client.get_indexing_configuration()

  

  Gets the indexing configuration.

   

  Requires permission to access the `GetIndexingConfiguration <https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions>`__ action.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/iot-2015-05-28/GetIndexingConfiguration>`_  


  **Request Syntax**
  ::

    response = client.get_indexing_configuration()
    
    
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'thingIndexingConfiguration': {
              'thingIndexingMode': 'OFF'|'REGISTRY'|'REGISTRY_AND_SHADOW',
              'thingConnectivityIndexingMode': 'OFF'|'STATUS',
              'deviceDefenderIndexingMode': 'OFF'|'VIOLATIONS',
              'namedShadowIndexingMode': 'OFF'|'ON',
              'managedFields': [
                  {
                      'name': 'string',
                      'type': 'Number'|'String'|'Boolean'
                  },
              ],
              'customFields': [
                  {
                      'name': 'string',
                      'type': 'Number'|'String'|'Boolean'
                  },
              ],
              'filter': {
                  'namedShadowNames': [
                      'string',
                  ],
                  'geoLocations': [
                      {
                          'name': 'string',
                          'order': 'LatLon'|'LonLat'
                      },
                  ]
              }
          },
          'thingGroupIndexingConfiguration': {
              'thingGroupIndexingMode': 'OFF'|'ON',
              'managedFields': [
                  {
                      'name': 'string',
                      'type': 'Number'|'String'|'Boolean'
                  },
              ],
              'customFields': [
                  {
                      'name': 'string',
                      'type': 'Number'|'String'|'Boolean'
                  },
              ]
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **thingIndexingConfiguration** *(dict) --* 

        Thing indexing configuration.

        
        

        - **thingIndexingMode** *(string) --* 

          Thing indexing mode. Valid values are:

           

          
          * REGISTRY – Your thing index contains registry data only.
           
          * REGISTRY_AND_SHADOW - Your thing index contains registry and shadow data.
           
          * OFF - Thing indexing is disabled.
          

          
        

        - **thingConnectivityIndexingMode** *(string) --* 

          Thing connectivity indexing mode. Valid values are:

           

          
          * STATUS – Your thing index contains connectivity status. To enable thing connectivity indexing, *thingIndexMode* must not be set to OFF.
           
          * OFF - Thing connectivity status indexing is disabled.
          

          
        

        - **deviceDefenderIndexingMode** *(string) --* 

          Device Defender indexing mode. Valid values are:

           

          
          * VIOLATIONS – Your thing index contains Device Defender violations. To enable Device Defender indexing, *deviceDefenderIndexingMode* must not be set to OFF.
           
          * OFF - Device Defender indexing is disabled.
          

           

          For more information about Device Defender violations, see `Device Defender Detect. <https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-detect.html>`__

          
        

        - **namedShadowIndexingMode** *(string) --* 

          Named shadow indexing mode. Valid values are:

           

          
          * ON – Your thing index contains named shadow. To enable thing named shadow indexing, *namedShadowIndexingMode* must not be set to OFF.
           
          * OFF - Named shadow indexing is disabled.
          

           

          For more information about Shadows, see `IoT Device Shadow service. <https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html>`__

          
        

        - **managedFields** *(list) --* 

          Contains fields that are indexed and whose types are already known by the Fleet Indexing service. This is an optional field. For more information, see `Managed fields <https://docs.aws.amazon.com/iot/latest/developerguide/managing-fleet-index.html#managed-field>`__ in the *Amazon Web Services IoT Core Developer Guide*.

           

          .. note::

            

            You can't modify managed fields by updating fleet indexing configuration.

            

          
          

          - *(dict) --* 

            Describes the name and data type at a field.

            
            

            - **name** *(string) --* 

              The name of the field.

              
            

            - **type** *(string) --* 

              The data type of the field.

              
        
      
        

        - **customFields** *(list) --* 

          Contains custom field names and their data type.

          
          

          - *(dict) --* 

            Describes the name and data type at a field.

            
            

            - **name** *(string) --* 

              The name of the field.

              
            

            - **type** *(string) --* 

              The data type of the field.

              
        
      
        

        - **filter** *(dict) --* 

          Provides additional selections for named shadows and geolocation data.

           

          To add named shadows to your fleet indexing configuration, set ``namedShadowIndexingMode`` to be ON and specify your shadow names in ``namedShadowNames`` filter.

           

          To add geolocation data to your fleet indexing configuration:

           

          
          * If you store geolocation data in a class/unnamed shadow, set ``thingIndexingMode`` to be ``REGISTRY_AND_SHADOW`` and specify your geolocation data in ``geoLocations`` filter.
           
          * If you store geolocation data in a named shadow, set ``namedShadowIndexingMode`` to be ``ON``, add the shadow name in ``namedShadowNames`` filter, and specify your geolocation data in ``geoLocations`` filter. For more information, see `Managing fleet indexing <https://docs.aws.amazon.com/iot/latest/developerguide/managing-fleet-index.html>`__.
          

          
          

          - **namedShadowNames** *(list) --* 

            The shadow names that you select to index. The default maximum number of shadow names for indexing is 10. To increase the limit, see `Amazon Web Services IoT Device Management Quotas <https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html#fleet-indexing-limits>`__ in the *Amazon Web Services General Reference*.

            
            

            - *(string) --* 
        
          

          - **geoLocations** *(list) --* 

            The list of geolocation targets that you select to index. The default maximum number of geolocation targets for indexing is ``1``. To increase the limit, see `Amazon Web Services IoT Device Management Quotas <https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html#fleet-indexing-limits>`__ in the *Amazon Web Services General Reference*.

            
            

            - *(dict) --* 

              A geolocation target that you select to index. Each geolocation target contains a ``name`` and ``order`` key-value pair that specifies the geolocation target fields.

              
              

              - **name** *(string) --* 

                The ``name`` of the geolocation target field. If the target field is part of a named shadow, you must select the named shadow using the ``namedShadow`` filter.

                
              

              - **order** *(string) --* 

                The ``order`` of the geolocation target field. This field is optional. The default value is ``LatLon``.

                
          
        
      
    
      

      - **thingGroupIndexingConfiguration** *(dict) --* 

        The index configuration.

        
        

        - **thingGroupIndexingMode** *(string) --* 

          Thing group indexing mode.

          
        

        - **managedFields** *(list) --* 

          Contains fields that are indexed and whose types are already known by the Fleet Indexing service. This is an optional field. For more information, see `Managed fields <https://docs.aws.amazon.com/iot/latest/developerguide/managing-fleet-index.html#managed-field>`__ in the *Amazon Web Services IoT Core Developer Guide*.

           

          .. note::

            

            You can't modify managed fields by updating fleet indexing configuration.

            

          
          

          - *(dict) --* 

            Describes the name and data type at a field.

            
            

            - **name** *(string) --* 

              The name of the field.

              
            

            - **type** *(string) --* 

              The data type of the field.

              
        
      
        

        - **customFields** *(list) --* 

          A list of thing group fields to index. This list cannot contain any managed fields. Use the GetIndexingConfiguration API to get a list of managed fields.

           

          Contains custom field names and their data type.

          
          

          - *(dict) --* 

            Describes the name and data type at a field.

            
            

            - **name** *(string) --* 

              The name of the field.

              
            

            - **type** *(string) --* 

              The data type of the field.

              
        
      
    
  
  **Exceptions**
  
  *   :py:class:`IoT.Client.exceptions.InvalidRequestException`

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

  
  *   :py:class:`IoT.Client.exceptions.UnauthorizedException`

  
  *   :py:class:`IoT.Client.exceptions.ServiceUnavailableException`

  
  *   :py:class:`IoT.Client.exceptions.InternalFailureException`

  