:doc:`CloudDirectory <../../clouddirectory>` / Client / create_index

************
create_index
************



.. py:method:: CloudDirectory.Client.create_index(**kwargs)

  

  Creates an index object. See `Indexing and search <https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.html>`__ for more information.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateIndex>`_  


  **Request Syntax**
  ::

    response = client.create_index(
        DirectoryArn='string',
        OrderedIndexedAttributeList=[
            {
                'SchemaArn': 'string',
                'FacetName': 'string',
                'Name': 'string'
            },
        ],
        IsUnique=True|False,
        ParentReference={
            'Selector': 'string'
        },
        LinkName='string'
    )
    
  :type DirectoryArn: string
  :param DirectoryArn: **[REQUIRED]** 

    The ARN of the directory where the index should be created.

    

  
  :type OrderedIndexedAttributeList: list
  :param OrderedIndexedAttributeList: **[REQUIRED]** 

    Specifies the attributes that should be indexed on. Currently only a single attribute is supported.

    

  
    - *(dict) --* 

      A unique identifier for an attribute.

      

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

        The Amazon Resource Name (ARN) of the schema that contains the facet and attribute.

        

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

        The name of the facet that the attribute exists within.

        

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

        The name of the attribute.

        

      
    

  :type IsUnique: boolean
  :param IsUnique: **[REQUIRED]** 

    Indicates whether the attribute that is being indexed has unique values or not.

    

  
  :type ParentReference: dict
  :param ParentReference: 

    A reference to the parent object that contains the index object.

    

  
    - **Selector** *(string) --* 

      A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see `Access Objects <https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html>`__. You can identify an object in one of the following ways:

       

      
      * *$ObjectIdentifier* - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier. To identify an object with ObjectIdentifier, the ObjectIdentifier must be wrapped in double quotes.
       
      * */some/path* - Identifies the object based on path
       
      * *#SomeBatchReference* - Identifies the object in a batch call
      

      

    
  
  :type LinkName: string
  :param LinkName: 

    The name of the link between the parent object and the index object.

    

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

    
    ::

      {
          'ObjectIdentifier': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **ObjectIdentifier** *(string) --* 

        The ``ObjectIdentifier`` of the index created by this operation.

        
  
  **Exceptions**
  
  *   :py:class:`CloudDirectory.Client.exceptions.InternalServiceException`

  
  *   :py:class:`CloudDirectory.Client.exceptions.InvalidArnException`

  
  *   :py:class:`CloudDirectory.Client.exceptions.RetryableConflictException`

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

  
  *   :py:class:`CloudDirectory.Client.exceptions.LimitExceededException`

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

  
  *   :py:class:`CloudDirectory.Client.exceptions.DirectoryNotEnabledException`

  
  *   :py:class:`CloudDirectory.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`CloudDirectory.Client.exceptions.FacetValidationException`

  
  *   :py:class:`CloudDirectory.Client.exceptions.LinkNameAlreadyInUseException`

  
  *   :py:class:`CloudDirectory.Client.exceptions.UnsupportedIndexTypeException`

  