:doc:`OpenSearchService <../../opensearch>` / Client / associate_package

*****************
associate_package
*****************



.. py:method:: OpenSearchService.Client.associate_package(**kwargs)

  

  Associates a package with an Amazon OpenSearch Service domain. For more information, see `Custom packages for Amazon OpenSearch Service <https://docs.aws.amazon.com/opensearch-service/latest/developerguide/custom-packages.html>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/opensearch-2021-01-01/AssociatePackage>`_  


  **Request Syntax**
  ::

    response = client.associate_package(
        PackageID='string',
        DomainName='string',
        PrerequisitePackageIDList=[
            'string',
        ],
        AssociationConfiguration={
            'KeyStoreAccessOption': {
                'KeyAccessRoleArn': 'string',
                'KeyStoreAccessEnabled': True|False
            }
        }
    )
    
  :type PackageID: string
  :param PackageID: **[REQUIRED]** 

    Internal ID of the package to associate with a domain. Use ``DescribePackages`` to find this value.

    

  
  :type DomainName: string
  :param DomainName: **[REQUIRED]** 

    Name of the domain to associate the package with.

    

  
  :type PrerequisitePackageIDList: list
  :param PrerequisitePackageIDList: 

    A list of package IDs that must be associated with the domain before the package specified in the request can be associated.

    

  
    - *(string) --* 

    

  :type AssociationConfiguration: dict
  :param AssociationConfiguration: 

    The configuration for associating a package with an Amazon OpenSearch Service domain.

    

  
    - **KeyStoreAccessOption** *(dict) --* 

      The configuration parameters to enable accessing the key store required by the package.

      

    
      - **KeyAccessRoleArn** *(string) --* 

        Role ARN to access the KeyStore Key

        

      
      - **KeyStoreAccessEnabled** *(boolean) --* **[REQUIRED]** 

        This indicates whether Key Store access is enabled

        

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

    
    ::

      {
          'DomainPackageDetails': {
              'PackageID': 'string',
              'PackageName': 'string',
              'PackageType': 'TXT-DICTIONARY'|'ZIP-PLUGIN'|'PACKAGE-LICENSE'|'PACKAGE-CONFIG',
              'LastUpdated': datetime(2015, 1, 1),
              'DomainName': 'string',
              'DomainPackageStatus': 'ASSOCIATING'|'ASSOCIATION_FAILED'|'ACTIVE'|'DISSOCIATING'|'DISSOCIATION_FAILED',
              'PackageVersion': 'string',
              'PrerequisitePackageIDList': [
                  'string',
              ],
              'ReferencePath': 'string',
              'ErrorDetails': {
                  'ErrorType': 'string',
                  'ErrorMessage': 'string'
              },
              'AssociationConfiguration': {
                  'KeyStoreAccessOption': {
                      'KeyAccessRoleArn': 'string',
                      'KeyStoreAccessEnabled': True|False
                  }
              }
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 

      Container for the response returned by the ``AssociatePackage`` operation.

      
      

      - **DomainPackageDetails** *(dict) --* 

        Information about a package that is associated with a domain.

        
        

        - **PackageID** *(string) --* 

          Internal ID of the package.

          
        

        - **PackageName** *(string) --* 

          User-specified name of the package.

          
        

        - **PackageType** *(string) --* 

          The type of package.

          
        

        - **LastUpdated** *(datetime) --* 

          Timestamp of the most recent update to the package association status.

          
        

        - **DomainName** *(string) --* 

          Name of the domain that the package is associated with.

          
        

        - **DomainPackageStatus** *(string) --* 

          State of the association.

          
        

        - **PackageVersion** *(string) --* 

          The current version of the package.

          
        

        - **PrerequisitePackageIDList** *(list) --* 

          A list of package IDs that must be associated with the domain before or with the package can be associated.

          
          

          - *(string) --* 
      
        

        - **ReferencePath** *(string) --* 

          The relative path of the package on the OpenSearch Service cluster nodes. This is ``synonym_path`` when the package is for synonym files.

          
        

        - **ErrorDetails** *(dict) --* 

          Additional information if the package is in an error state. Null otherwise.

          
          

          - **ErrorType** *(string) --* 

            The type of error that occurred.

            
          

          - **ErrorMessage** *(string) --* 

            A message describing the error.

            
      
        

        - **AssociationConfiguration** *(dict) --* 

          The configuration for associating a package with an Amazon OpenSearch Service domain.

          
          

          - **KeyStoreAccessOption** *(dict) --* 

            The configuration parameters to enable accessing the key store required by the package.

            
            

            - **KeyAccessRoleArn** *(string) --* 

              Role ARN to access the KeyStore Key

              
            

            - **KeyStoreAccessEnabled** *(boolean) --* 

              This indicates whether Key Store access is enabled

              
        
      
    
  
  **Exceptions**
  
  *   :py:class:`OpenSearchService.Client.exceptions.BaseException`

  
  *   :py:class:`OpenSearchService.Client.exceptions.InternalException`

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

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

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

  
  *   :py:class:`OpenSearchService.Client.exceptions.ConflictException`

  