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

*****************************
update_indexing_configuration
*****************************



.. py:method:: IoT.Client.update_indexing_configuration(**kwargs)

  

  Updates the search configuration.

   

  Requires permission to access the `UpdateIndexingConfiguration <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/UpdateIndexingConfiguration>`_  


  **Request Syntax**
  ::

    response = client.update_indexing_configuration(
        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'
                },
            ]
        }
    )
    
  :type thingIndexingConfiguration: dict
  :param thingIndexingConfiguration: 

    Thing indexing configuration.

    

  
    - **thingIndexingMode** *(string) --* **[REQUIRED]** 

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

            

          
        
    
    
  
  :type thingGroupIndexingConfiguration: dict
  :param thingGroupIndexingConfiguration: 

    Thing group indexing configuration.

    

  
    - **thingGroupIndexingMode** *(string) --* **[REQUIRED]** 

      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.

          

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

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  
  **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`

  