:doc:`RDS <../../rds>` / Client / create_custom_db_engine_version

*******************************
create_custom_db_engine_version
*******************************



.. py:method:: RDS.Client.create_custom_db_engine_version(**kwargs)

  

  Creates a custom DB engine version (CEV).

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateCustomDBEngineVersion>`_  


  **Request Syntax**
  ::

    response = client.create_custom_db_engine_version(
        Engine='string',
        EngineVersion='string',
        DatabaseInstallationFilesS3BucketName='string',
        DatabaseInstallationFilesS3Prefix='string',
        DatabaseInstallationFiles=[
            'string',
        ],
        ImageId='string',
        KMSKeyId='string',
        SourceCustomDbEngineVersionIdentifier='string',
        UseAwsProvidedLatestImage=True|False,
        Description='string',
        Manifest='string',
        Tags=[
            {
                'Key': 'string',
                'Value': 'string'
            },
        ]
    )
    
  :type Engine: string
  :param Engine: **[REQUIRED]** 

    The database engine.

     

    RDS Custom for Oracle supports the following values:

     

    
    * ``custom-oracle-ee``
     
    * ``custom-oracle-ee-cdb``
     
    * ``custom-oracle-se2``
     
    * ``custom-oracle-se2-cdb``
    

     

    RDS Custom for SQL Server supports the following values:

     

    
    * ``custom-sqlserver-ee``
     
    * ``custom-sqlserver-se``
     
    * ``ccustom-sqlserver-web``
     
    * ``custom-sqlserver-dev``
    

     

    RDS for SQL Server supports only ``sqlserver-dev-ee``.

    

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

    The name of your custom engine version (CEV).

     

    For RDS Custom for Oracle, the name format is ``19.*customized_string*``. For example, a valid CEV name is ``19.my_cev1``.

     

    For RDS for SQL Server and RDS Custom for SQL Server, the name format is ``major engine_version*.*minor_engine_version*.*customized_string*``. For example, a valid CEV name is ``16.00.4215.2.my_cev1``.

     

    The CEV name is unique per customer per Amazon Web Services Regions.

    

  
  :type DatabaseInstallationFilesS3BucketName: string
  :param DatabaseInstallationFilesS3BucketName: 

    The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is ``my-custom-installation-files``.

    

  
  :type DatabaseInstallationFilesS3Prefix: string
  :param DatabaseInstallationFilesS3Prefix: 

    The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is ``123456789012/cev1``. If this setting isn't specified, no prefix is assumed.

    

  
  :type DatabaseInstallationFiles: list
  :param DatabaseInstallationFiles: 

    The database installation files (ISO and EXE) uploaded to Amazon S3 for your database engine version to import to Amazon RDS.

    

  
    - *(string) --* 

    

  :type ImageId: string
  :param ImageId: 

    The ID of the Amazon Machine Image (AMI). For RDS Custom for SQL Server, an AMI ID is required to create a CEV. For RDS Custom for Oracle, the default is the most recent AMI available, but you can specify an AMI ID that was used in a different Oracle CEV. Find the AMIs used by your CEVs by calling the `DescribeDBEngineVersions <https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html>`__ operation.

    

  
  :type KMSKeyId: string
  :param KMSKeyId: 

    The Amazon Web Services KMS key identifier for an encrypted CEV. A symmetric encryption KMS key is required for RDS Custom, but optional for Amazon RDS.

     

    If you have an existing symmetric encryption KMS key in your account, you can use it with RDS Custom. No further action is necessary. If you don't already have a symmetric encryption KMS key in your account, follow the instructions in `Creating a symmetric encryption KMS key <https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk>`__ in the *Amazon Web Services Key Management Service Developer Guide*.

     

    You can choose the same symmetric encryption key when you create a CEV and a DB instance, or choose different keys.

    

  
  :type SourceCustomDbEngineVersionIdentifier: string
  :param SourceCustomDbEngineVersionIdentifier: 

    The ARN of a CEV to use as a source for creating a new CEV. You can specify a different Amazon Machine Imagine (AMI) by using either ``Source`` or ``UseAwsProvidedLatestImage``. You can't specify a different JSON manifest when you specify ``SourceCustomDbEngineVersionIdentifier``.

    

  
  :type UseAwsProvidedLatestImage: boolean
  :param UseAwsProvidedLatestImage: 

    Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. If you specify ``UseAwsProvidedLatestImage``, you can't also specify ``ImageId``.

    

  
  :type Description: string
  :param Description: 

    An optional description of your CEV.

    

  
  :type Manifest: string
  :param Manifest: 

    The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.

     

    The following JSON fields are valid:

      MediaImportTemplateVersion  

    Version of the CEV manifest. The date is in the format ``YYYY-MM-DD``.

      databaseInstallationFileNames  

    Ordered list of installation files for the CEV.

      opatchFileNames  

    Ordered list of OPatch installers used for the Oracle DB engine.

      psuRuPatchFileNames  

    The PSU and RU patches for this CEV.

      OtherPatchFileNames  

    The patches that are not in the list of PSU and RU patches. Amazon RDS applies these patches after applying the PSU and RU patches.

       

    For more information, see `Creating the CEV manifest <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html#custom-cev.preparing.manifest>`__ in the *Amazon RDS User Guide*.

    

  
  :type Tags: list
  :param Tags: 

    A list of tags.

     

    For more information, see `Tagging Amazon RDS resources <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html>`__ in the *Amazon RDS User Guide* or `Tagging Amazon Aurora and Amazon RDS resources <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html>`__ in the *Amazon Aurora User Guide*.

    

  
    - *(dict) --* 

      Metadata assigned to an Amazon RDS resource consisting of a key-value pair.

       

      For more information, see `Tagging Amazon RDS resources <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html>`__ in the *Amazon RDS User Guide* or `Tagging Amazon Aurora and Amazon RDS resources <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html>`__ in the *Amazon Aurora User Guide*.

      

    
      - **Key** *(string) --* 

        A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$").

        

      
      - **Value** *(string) --* 

        A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$").

        

      
    

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

    
    ::

      {
          'Engine': 'string',
          'MajorEngineVersion': 'string',
          'EngineVersion': 'string',
          'DatabaseInstallationFilesS3BucketName': 'string',
          'DatabaseInstallationFilesS3Prefix': 'string',
          'DatabaseInstallationFiles': [
              'string',
          ],
          'CustomDBEngineVersionManifest': 'string',
          'DBParameterGroupFamily': 'string',
          'DBEngineDescription': 'string',
          'DBEngineVersionArn': 'string',
          'DBEngineVersionDescription': 'string',
          'DefaultCharacterSet': {
              'CharacterSetName': 'string',
              'CharacterSetDescription': 'string'
          },
          'FailureReason': 'string',
          'Image': {
              'ImageId': 'string',
              'Status': 'string'
          },
          'DBEngineMediaType': 'string',
          'KMSKeyId': 'string',
          'CreateTime': datetime(2015, 1, 1),
          'SupportedCharacterSets': [
              {
                  'CharacterSetName': 'string',
                  'CharacterSetDescription': 'string'
              },
          ],
          'SupportedNcharCharacterSets': [
              {
                  'CharacterSetName': 'string',
                  'CharacterSetDescription': 'string'
              },
          ],
          'ValidUpgradeTarget': [
              {
                  'Engine': 'string',
                  'EngineVersion': 'string',
                  'Description': 'string',
                  'AutoUpgrade': True|False,
                  'IsMajorVersionUpgrade': True|False,
                  'SupportedEngineModes': [
                      'string',
                  ],
                  'SupportsParallelQuery': True|False,
                  'SupportsGlobalDatabases': True|False,
                  'SupportsBabelfish': True|False,
                  'SupportsLimitlessDatabase': True|False,
                  'SupportsLocalWriteForwarding': True|False,
                  'SupportsIntegrations': True|False
              },
          ],
          'SupportedTimezones': [
              {
                  'TimezoneName': 'string'
              },
          ],
          'ExportableLogTypes': [
              'string',
          ],
          'SupportsLogExportsToCloudwatchLogs': True|False,
          'SupportsReadReplica': True|False,
          'SupportedEngineModes': [
              'string',
          ],
          'SupportedFeatureNames': [
              'string',
          ],
          'Status': 'string',
          'SupportsParallelQuery': True|False,
          'SupportsGlobalDatabases': True|False,
          'TagList': [
              {
                  'Key': 'string',
                  'Value': 'string'
              },
          ],
          'SupportsBabelfish': True|False,
          'SupportsLimitlessDatabase': True|False,
          'SupportsCertificateRotationWithoutRestart': True|False,
          'SupportedCACertificateIdentifiers': [
              'string',
          ],
          'SupportsLocalWriteForwarding': True|False,
          'SupportsIntegrations': True|False,
          'ServerlessV2FeaturesSupport': {
              'MinCapacity': 123.0,
              'MaxCapacity': 123.0
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 

      This data type is used as a response element in the action ``DescribeDBEngineVersions``.

      
      

      - **Engine** *(string) --* 

        The name of the database engine.

        
      

      - **MajorEngineVersion** *(string) --* 

        The major engine version of the CEV.

        
      

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

        The version number of the database engine.

        
      

      - **DatabaseInstallationFilesS3BucketName** *(string) --* 

        The name of the Amazon S3 bucket that contains your database installation files.

        
      

      - **DatabaseInstallationFilesS3Prefix** *(string) --* 

        The Amazon S3 directory that contains the database installation files. If not specified, then no prefix is assumed.

        
      

      - **DatabaseInstallationFiles** *(list) --* 

        The database installation files (ISO and EXE) uploaded to Amazon S3 for your database engine version to import to Amazon RDS. Required for ``sqlserver-dev-ee``.

        
        

        - *(string) --* 
    
      

      - **CustomDBEngineVersionManifest** *(string) --* 

        JSON string that lists the installation files and parameters that RDS Custom uses to create a custom engine version (CEV). RDS Custom applies the patches in the order in which they're listed in the manifest. You can set the Oracle home, Oracle base, and UNIX/Linux user and group using the installation parameters. For more information, see `JSON fields in the CEV manifest <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.preparing.html#custom-cev.preparing.manifest.fields>`__ in the *Amazon RDS User Guide*.

        
      

      - **DBParameterGroupFamily** *(string) --* 

        The name of the DB parameter group family for the database engine.

        
      

      - **DBEngineDescription** *(string) --* 

        The description of the database engine.

        
      

      - **DBEngineVersionArn** *(string) --* 

        The ARN of the custom engine version.

        
      

      - **DBEngineVersionDescription** *(string) --* 

        The description of the database engine version.

        
      

      - **DefaultCharacterSet** *(dict) --* 

        The default character set for new instances of this engine version, if the ``CharacterSetName`` parameter of the CreateDBInstance API isn't specified.

        
        

        - **CharacterSetName** *(string) --* 

          The name of the character set.

          
        

        - **CharacterSetDescription** *(string) --* 

          The description of the character set.

          
    
      

      - **FailureReason** *(string) --* 

        The reason that the custom engine version creation for ``sqlserver-dev-ee`` failed with an ``incompatible-installation-media`` status.

        
      

      - **Image** *(dict) --* 

        The EC2 image

        
        

        - **ImageId** *(string) --* 

          A value that indicates the ID of the AMI.

          
        

        - **Status** *(string) --* 

          A value that indicates the status of a custom engine version (CEV).

          
    
      

      - **DBEngineMediaType** *(string) --* 

        A value that indicates the source media provider of the AMI based on the usage operation. Applicable for RDS Custom for SQL Server.

        
      

      - **KMSKeyId** *(string) --* 

        The Amazon Web Services KMS key identifier for an encrypted CEV. This parameter is required for RDS Custom, but optional for Amazon RDS.

        
      

      - **CreateTime** *(datetime) --* 

        The creation time of the DB engine version.

        
      

      - **SupportedCharacterSets** *(list) --* 

        A list of the character sets supported by this engine for the ``CharacterSetName`` parameter of the ``CreateDBInstance`` operation.

        
        

        - *(dict) --* 

          This data type is used as a response element in the action ``DescribeDBEngineVersions``.

          
          

          - **CharacterSetName** *(string) --* 

            The name of the character set.

            
          

          - **CharacterSetDescription** *(string) --* 

            The description of the character set.

            
      
    
      

      - **SupportedNcharCharacterSets** *(list) --* 

        A list of the character sets supported by the Oracle DB engine for the ``NcharCharacterSetName`` parameter of the ``CreateDBInstance`` operation.

        
        

        - *(dict) --* 

          This data type is used as a response element in the action ``DescribeDBEngineVersions``.

          
          

          - **CharacterSetName** *(string) --* 

            The name of the character set.

            
          

          - **CharacterSetDescription** *(string) --* 

            The description of the character set.

            
      
    
      

      - **ValidUpgradeTarget** *(list) --* 

        A list of engine versions that this database engine version can be upgraded to.

        
        

        - *(dict) --* 

          The version of the database engine that a DB instance can be upgraded to.

          
          

          - **Engine** *(string) --* 

            The name of the upgrade target database engine.

            
          

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

            The version number of the upgrade target database engine.

            
          

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

            The version of the database engine that a DB instance can be upgraded to.

            
          

          - **AutoUpgrade** *(boolean) --* 

            Indicates whether the target version is applied to any source DB instances that have ``AutoMinorVersionUpgrade`` set to true.

             

            This parameter is dynamic, and is set by RDS.

            
          

          - **IsMajorVersionUpgrade** *(boolean) --* 

            Indicates whether upgrading to the target version requires upgrading the major version of the database engine.

            
          

          - **SupportedEngineModes** *(list) --* 

            A list of the supported DB engine modes for the target engine version.

            
            

            - *(string) --* 
        
          

          - **SupportsParallelQuery** *(boolean) --* 

            Indicates whether you can use Aurora parallel query with the target engine version.

            
          

          - **SupportsGlobalDatabases** *(boolean) --* 

            Indicates whether you can use Aurora global databases with the target engine version.

            
          

          - **SupportsBabelfish** *(boolean) --* 

            Indicates whether you can use Babelfish for Aurora PostgreSQL with the target engine version.

            
          

          - **SupportsLimitlessDatabase** *(boolean) --* 

            Indicates whether the DB engine version supports Aurora Limitless Database.

            
          

          - **SupportsLocalWriteForwarding** *(boolean) --* 

            Indicates whether the target engine version supports forwarding write operations from reader DB instances to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.

             

            Valid for: Aurora DB clusters only

            
          

          - **SupportsIntegrations** *(boolean) --* 

            Indicates whether the DB engine version supports zero-ETL integrations with Amazon Redshift.

            
      
    
      

      - **SupportedTimezones** *(list) --* 

        A list of the time zones supported by this engine for the ``Timezone`` parameter of the ``CreateDBInstance`` action.

        
        

        - *(dict) --* 

          A time zone associated with a ``DBInstance`` or a ``DBSnapshot``. This data type is an element in the response to the ``DescribeDBInstances``, the ``DescribeDBSnapshots``, and the ``DescribeDBEngineVersions`` actions.

          
          

          - **TimezoneName** *(string) --* 

            The name of the time zone.

            
      
    
      

      - **ExportableLogTypes** *(list) --* 

        The types of logs that the database engine has available for export to CloudWatch Logs.

        
        

        - *(string) --* 
    
      

      - **SupportsLogExportsToCloudwatchLogs** *(boolean) --* 

        Indicates whether the engine version supports exporting the log types specified by ExportableLogTypes to CloudWatch Logs.

        
      

      - **SupportsReadReplica** *(boolean) --* 

        Indicates whether the database engine version supports read replicas.

        
      

      - **SupportedEngineModes** *(list) --* 

        A list of the supported DB engine modes.

        
        

        - *(string) --* 
    
      

      - **SupportedFeatureNames** *(list) --* 

        A list of features supported by the DB engine.

         

        The supported features vary by DB engine and DB engine version.

         

        To determine the supported features for a specific DB engine and DB engine version using the CLI, use the following command:

         

        ``aws rds describe-db-engine-versions --engine <engine_name> --engine-version <engine_version>``

         

        For example, to determine the supported features for RDS for PostgreSQL version 13.3 using the CLI, use the following command:

         

        ``aws rds describe-db-engine-versions --engine postgres --engine-version 13.3``

         

        The supported features are listed under ``SupportedFeatureNames`` in the output.

        
        

        - *(string) --* 
    
      

      - **Status** *(string) --* 

        The status of the DB engine version, either ``available`` or ``deprecated``.

        
      

      - **SupportsParallelQuery** *(boolean) --* 

        Indicates whether you can use Aurora parallel query with a specific DB engine version.

        
      

      - **SupportsGlobalDatabases** *(boolean) --* 

        Indicates whether you can use Aurora global databases with a specific DB engine version.

        
      

      - **TagList** *(list) --* 

        A list of tags.

         

        For more information, see `Tagging Amazon RDS resources <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html>`__ in the *Amazon RDS User Guide* or `Tagging Amazon Aurora and Amazon RDS resources <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html>`__ in the *Amazon Aurora User Guide*.

        
        

        - *(dict) --* 

          Metadata assigned to an Amazon RDS resource consisting of a key-value pair.

           

          For more information, see `Tagging Amazon RDS resources <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html>`__ in the *Amazon RDS User Guide* or `Tagging Amazon Aurora and Amazon RDS resources <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html>`__ in the *Amazon Aurora User Guide*.

          
          

          - **Key** *(string) --* 

            A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$").

            
          

          - **Value** *(string) --* 

            A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$").

            
      
    
      

      - **SupportsBabelfish** *(boolean) --* 

        Indicates whether the engine version supports Babelfish for Aurora PostgreSQL.

        
      

      - **SupportsLimitlessDatabase** *(boolean) --* 

        Indicates whether the DB engine version supports Aurora Limitless Database.

        
      

      - **SupportsCertificateRotationWithoutRestart** *(boolean) --* 

        Indicates whether the engine version supports rotating the server certificate without rebooting the DB instance.

        
      

      - **SupportedCACertificateIdentifiers** *(list) --* 

        A list of the supported CA certificate identifiers.

         

        For more information, see `Using SSL/TLS to encrypt a connection to a DB instance <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html>`__ in the *Amazon RDS User Guide* and `Using SSL/TLS to encrypt a connection to a DB cluster <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html>`__ in the *Amazon Aurora User Guide*.

        
        

        - *(string) --* 
    
      

      - **SupportsLocalWriteForwarding** *(boolean) --* 

        Indicates whether the DB engine version supports forwarding write operations from reader DB instances to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.

         

        Valid for: Aurora DB clusters only

        
      

      - **SupportsIntegrations** *(boolean) --* 

        Indicates whether the DB engine version supports zero-ETL integrations with Amazon Redshift.

        
      

      - **ServerlessV2FeaturesSupport** *(dict) --* 

        Specifies any Aurora Serverless v2 properties or limits that differ between Aurora engine versions. You can test the values of this attribute when deciding which Aurora version to use in a new or upgraded DB cluster. You can also retrieve the version of an existing DB cluster and check whether that version supports certain Aurora Serverless v2 features before you attempt to use those features.

        
        

        - **MinCapacity** *(float) --* 

          If the minimum capacity is 0 ACUs, the engine version or platform version supports the automatic pause/resume feature of Aurora Serverless v2.

          
        

        - **MaxCapacity** *(float) --* 

          Specifies the upper Aurora Serverless v2 capacity limit for a particular engine version or platform version. Depending on the engine version, the maximum capacity for an Aurora Serverless v2 cluster might be ``256`` or ``128``.

          
    
  
  **Exceptions**
  
  *   :py:class:`RDS.Client.exceptions.CustomDBEngineVersionNotFoundFault`

  
  *   :py:class:`RDS.Client.exceptions.Ec2ImagePropertiesNotSupportedFault`

  
  *   :py:class:`RDS.Client.exceptions.InvalidCustomDBEngineVersionStateFault`

  
  *   :py:class:`RDS.Client.exceptions.CustomDBEngineVersionQuotaExceededFault`

  
  *   :py:class:`RDS.Client.exceptions.CreateCustomDBEngineVersionFault`

  
  *   :py:class:`RDS.Client.exceptions.KMSKeyNotAccessibleFault`

  
  *   :py:class:`RDS.Client.exceptions.CustomDBEngineVersionAlreadyExistsFault`

  