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

**************
create_package
**************



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

  

  Creates a package for use with Amazon OpenSearch Service domains. 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/CreatePackage>`_  


  **Request Syntax**
  ::

    response = client.create_package(
        PackageName='string',
        PackageType='TXT-DICTIONARY'|'ZIP-PLUGIN'|'PACKAGE-LICENSE'|'PACKAGE-CONFIG',
        PackageDescription='string',
        PackageSource={
            'S3BucketName': 'string',
            'S3Key': 'string'
        },
        PackageConfiguration={
            'LicenseRequirement': 'REQUIRED'|'OPTIONAL'|'NONE',
            'LicenseFilepath': 'string',
            'ConfigurationRequirement': 'REQUIRED'|'OPTIONAL'|'NONE',
            'RequiresRestartForConfigurationUpdate': True|False
        },
        EngineVersion='string',
        PackageVendingOptions={
            'VendingEnabled': True|False
        },
        PackageEncryptionOptions={
            'KmsKeyIdentifier': 'string',
            'EncryptionEnabled': True|False
        }
    )
    
  :type PackageName: string
  :param PackageName: **[REQUIRED]** 

    Unique name for the package.

    

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

    The type of package.

    

  
  :type PackageDescription: string
  :param PackageDescription: 

    Description of the package.

    

  
  :type PackageSource: dict
  :param PackageSource: **[REQUIRED]** 

    The Amazon S3 location from which to import the package.

    

  
    - **S3BucketName** *(string) --* 

      The name of the Amazon S3 bucket containing the package.

      

    
    - **S3Key** *(string) --* 

      Key (file name) of the package.

      

    
  
  :type PackageConfiguration: dict
  :param PackageConfiguration: 

    The configuration parameters for the package being created.

    

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

      The license requirements for the package.

      

    
    - **LicenseFilepath** *(string) --* 

      The relative file path for the license associated with the package.

      

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

      The configuration requirements for the package.

      

    
    - **RequiresRestartForConfigurationUpdate** *(boolean) --* 

      This indicates whether a B/G deployment is required for updating the configuration that the plugin is prerequisite for.

      

    
  
  :type EngineVersion: string
  :param EngineVersion: 

    The version of the Amazon OpenSearch Service engine for which is compatible with the package. This can only be specified for package type ``ZIP-PLUGIN``

    

  
  :type PackageVendingOptions: dict
  :param PackageVendingOptions: 

    The vending options for the package being created. They determine if the package can be vended to other users.

    

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

      Indicates whether the package vending feature is enabled, allowing the package to be used by other users.

      

    
  
  :type PackageEncryptionOptions: dict
  :param PackageEncryptionOptions: 

    The encryption parameters for the package being created.

    

  
    - **KmsKeyIdentifier** *(string) --* 

      KMS key ID for encrypting the package.

      

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

      Whether encryption is enabled for the package.

      

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

    
    ::

      {
          'PackageDetails': {
              'PackageID': 'string',
              'PackageName': 'string',
              'PackageType': 'TXT-DICTIONARY'|'ZIP-PLUGIN'|'PACKAGE-LICENSE'|'PACKAGE-CONFIG',
              'PackageDescription': 'string',
              'PackageStatus': 'COPYING'|'COPY_FAILED'|'VALIDATING'|'VALIDATION_FAILED'|'AVAILABLE'|'DELETING'|'DELETED'|'DELETE_FAILED',
              'CreatedAt': datetime(2015, 1, 1),
              'LastUpdatedAt': datetime(2015, 1, 1),
              'AvailablePackageVersion': 'string',
              'ErrorDetails': {
                  'ErrorType': 'string',
                  'ErrorMessage': 'string'
              },
              'EngineVersion': 'string',
              'AvailablePluginProperties': {
                  'Name': 'string',
                  'Description': 'string',
                  'Version': 'string',
                  'ClassName': 'string',
                  'UncompressedSizeInBytes': 123
              },
              'AvailablePackageConfiguration': {
                  'LicenseRequirement': 'REQUIRED'|'OPTIONAL'|'NONE',
                  'LicenseFilepath': 'string',
                  'ConfigurationRequirement': 'REQUIRED'|'OPTIONAL'|'NONE',
                  'RequiresRestartForConfigurationUpdate': True|False
              },
              'AllowListedUserList': [
                  'string',
              ],
              'PackageOwner': 'string',
              'PackageVendingOptions': {
                  'VendingEnabled': True|False
              },
              'PackageEncryptionOptions': {
                  'KmsKeyIdentifier': 'string',
                  'EncryptionEnabled': True|False
              }
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 

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

      
      

      - **PackageDetails** *(dict) --* 

        Basic information about an OpenSearch Service package.

        
        

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

          The unique identifier of the package.

          
        

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

          The user-specified name of the package.

          
        

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

          The type of package.

          
        

        - **PackageDescription** *(string) --* 

          User-specified description of the package.

          
        

        - **PackageStatus** *(string) --* 

          The current status of the package. The available options are ``AVAILABLE``, ``COPYING``, ``COPY_FAILED``, ``VALIDATNG``, ``VALIDATION_FAILED``, ``DELETING``, and ``DELETE_FAILED``.

          
        

        - **CreatedAt** *(datetime) --* 

          The timestamp when the package was created.

          
        

        - **LastUpdatedAt** *(datetime) --* 

          Date and time when the package was last updated.

          
        

        - **AvailablePackageVersion** *(string) --* 

          The package version.

          
        

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

            
      
        

        - **EngineVersion** *(string) --* 

          Version of OpenSearch or Elasticsearch, in the format Elasticsearch_X.Y or OpenSearch_X.Y. Defaults to the latest version of OpenSearch.

          
        

        - **AvailablePluginProperties** *(dict) --* 

          If the package is a ``ZIP-PLUGIN`` package, additional information about plugin properties.

          
          

          - **Name** *(string) --* 

            The name of the plugin.

            
          

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

            The description of the plugin.

            
          

          - **Version** *(string) --* 

            The version of the plugin.

            
          

          - **ClassName** *(string) --* 

            The name of the class to load.

            
          

          - **UncompressedSizeInBytes** *(integer) --* 

            The uncompressed size of the plugin.

            
      
        

        - **AvailablePackageConfiguration** *(dict) --* 

          This represents the available configuration parameters for the package.

          
          

          - **LicenseRequirement** *(string) --* 

            The license requirements for the package.

            
          

          - **LicenseFilepath** *(string) --* 

            The relative file path for the license associated with the package.

            
          

          - **ConfigurationRequirement** *(string) --* 

            The configuration requirements for the package.

            
          

          - **RequiresRestartForConfigurationUpdate** *(boolean) --* 

            This indicates whether a B/G deployment is required for updating the configuration that the plugin is prerequisite for.

            
      
        

        - **AllowListedUserList** *(list) --* 

          A list of users who are allowed to view and associate the package. This field is only visible to the owner of a package.

          
          

          - *(string) --* 
      
        

        - **PackageOwner** *(string) --* 

          The owner of the package who is allowed to create and update a package and add users to the package scope.

          
        

        - **PackageVendingOptions** *(dict) --* 

          Package Vending Options for a package.

          
          

          - **VendingEnabled** *(boolean) --* 

            Indicates whether the package vending feature is enabled, allowing the package to be used by other users.

            
      
        

        - **PackageEncryptionOptions** *(dict) --* 

          Encryption options for a package.

          
          

          - **KmsKeyIdentifier** *(string) --* 

            KMS key ID for encrypting the package.

            
          

          - **EncryptionEnabled** *(boolean) --* 

            Whether encryption is enabled for the package.

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

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

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

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

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

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

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

  