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

*******************
create_option_group
*******************



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

  

  Creates a new option group. You can create up to 20 option groups.

   

  This command doesn't apply to RDS Custom.

  

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


  **Request Syntax**
  ::

    response = client.create_option_group(
        OptionGroupName='string',
        EngineName='string',
        MajorEngineVersion='string',
        OptionGroupDescription='string',
        Tags=[
            {
                'Key': 'string',
                'Value': 'string'
            },
        ]
    )
    
  :type OptionGroupName: string
  :param OptionGroupName: **[REQUIRED]** 

    Specifies the name of the option group to be created.

     

    Constraints:

     

    
    * Must be 1 to 255 letters, numbers, or hyphens
     
    * First character must be a letter
     
    * Can't end with a hyphen or contain two consecutive hyphens
    

     

    Example: ``myoptiongroup``

    

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

    The name of the engine to associate this option group with.

     

    Valid Values:

     

    
    * ``db2-ae``
     
    * ``db2-se``
     
    * ``mariadb``
     
    * ``mysql``
     
    * ``oracle-ee``
     
    * ``oracle-ee-cdb``
     
    * ``oracle-se2``
     
    * ``oracle-se2-cdb``
     
    * ``postgres``
     
    * ``sqlserver-ee``
     
    * ``sqlserver-se``
     
    * ``sqlserver-ex``
     
    * ``sqlserver-web``
    

    

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

    Specifies the major version of the engine that this option group should be associated with.

    

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

    The description of the option group.

    

  
  :type Tags: list
  :param Tags: 

    Tags to assign to the option group.

    

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

    
    ::

      {
          'OptionGroup': {
              'OptionGroupName': 'string',
              'OptionGroupDescription': 'string',
              'EngineName': 'string',
              'MajorEngineVersion': 'string',
              'Options': [
                  {
                      'OptionName': 'string',
                      'OptionDescription': 'string',
                      'Persistent': True|False,
                      'Permanent': True|False,
                      'Port': 123,
                      'OptionVersion': 'string',
                      'OptionSettings': [
                          {
                              'Name': 'string',
                              'Value': 'string',
                              'DefaultValue': 'string',
                              'Description': 'string',
                              'ApplyType': 'string',
                              'DataType': 'string',
                              'AllowedValues': 'string',
                              'IsModifiable': True|False,
                              'IsCollection': True|False
                          },
                      ],
                      'DBSecurityGroupMemberships': [
                          {
                              'DBSecurityGroupName': 'string',
                              'Status': 'string'
                          },
                      ],
                      'VpcSecurityGroupMemberships': [
                          {
                              'VpcSecurityGroupId': 'string',
                              'Status': 'string'
                          },
                      ]
                  },
              ],
              'AllowsVpcAndNonVpcInstanceMemberships': True|False,
              'VpcId': 'string',
              'OptionGroupArn': 'string',
              'SourceOptionGroup': 'string',
              'SourceAccountId': 'string',
              'CopyTimestamp': datetime(2015, 1, 1)
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **OptionGroup** *(dict) --* 
        

        - **OptionGroupName** *(string) --* 

          Specifies the name of the option group.

          
        

        - **OptionGroupDescription** *(string) --* 

          Provides a description of the option group.

          
        

        - **EngineName** *(string) --* 

          Indicates the name of the engine that this option group can be applied to.

          
        

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

          Indicates the major engine version associated with this option group.

          
        

        - **Options** *(list) --* 

          Indicates what options are available in the option group.

          
          

          - *(dict) --* 

            The details of an option.

            
            

            - **OptionName** *(string) --* 

              The name of the option.

              
            

            - **OptionDescription** *(string) --* 

              The description of the option.

              
            

            - **Persistent** *(boolean) --* 

              Indicates whether this option is persistent.

              
            

            - **Permanent** *(boolean) --* 

              Indicates whether this option is permanent.

              
            

            - **Port** *(integer) --* 

              If required, the port configured for this option to use.

              
            

            - **OptionVersion** *(string) --* 

              The version of the option.

              
            

            - **OptionSettings** *(list) --* 

              The option settings for this option.

              
              

              - *(dict) --* 

                Option settings are the actual settings being applied or configured for that option. It is used when you modify an option group or describe option groups. For example, the NATIVE_NETWORK_ENCRYPTION option has a setting called SQLNET.ENCRYPTION_SERVER that can have several different values.

                
                

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

                  The name of the option that has settings that you can set.

                  
                

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

                  The current value of the option setting.

                  
                

                - **DefaultValue** *(string) --* 

                  The default value of the option setting.

                  
                

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

                  The description of the option setting.

                  
                

                - **ApplyType** *(string) --* 

                  The DB engine specific parameter type.

                  
                

                - **DataType** *(string) --* 

                  The data type of the option setting.

                  
                

                - **AllowedValues** *(string) --* 

                  The allowed values of the option setting.

                  
                

                - **IsModifiable** *(boolean) --* 

                  Indicates whether the option setting can be modified from the default.

                  
                

                - **IsCollection** *(boolean) --* 

                  Indicates whether the option setting is part of a collection.

                  
            
          
            

            - **DBSecurityGroupMemberships** *(list) --* 

              If the option requires access to a port, then this DB security group allows access to the port.

              
              

              - *(dict) --* 

                This data type is used as a response element in the following actions:

                 

                
                * ``ModifyDBInstance``
                 
                * ``RebootDBInstance``
                 
                * ``RestoreDBInstanceFromDBSnapshot``
                 
                * ``RestoreDBInstanceToPointInTime``
                

                
                

                - **DBSecurityGroupName** *(string) --* 

                  The name of the DB security group.

                  
                

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

                  The status of the DB security group.

                  
            
          
            

            - **VpcSecurityGroupMemberships** *(list) --* 

              If the option requires access to a port, then this VPC security group allows access to the port.

              
              

              - *(dict) --* 

                This data type is used as a response element for queries on VPC security group membership.

                
                

                - **VpcSecurityGroupId** *(string) --* 

                  The name of the VPC security group.

                  
                

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

                  The membership status of the VPC security group.

                   

                  Currently, the only valid status is ``active``.

                  
            
          
        
      
        

        - **AllowsVpcAndNonVpcInstanceMemberships** *(boolean) --* 

          Indicates whether this option group can be applied to both VPC and non-VPC instances. The value ``true`` indicates the option group can be applied to both VPC and non-VPC instances.

          
        

        - **VpcId** *(string) --* 

          If **AllowsVpcAndNonVpcInstanceMemberships** is ``false``, this field is blank. If **AllowsVpcAndNonVpcInstanceMemberships** is ``true`` and this field is blank, then this option group can be applied to both VPC and non-VPC instances. If this field contains a value, then this option group can only be applied to instances that are in the VPC indicated by this field.

          
        

        - **OptionGroupArn** *(string) --* 

          Specifies the Amazon Resource Name (ARN) for the option group.

          
        

        - **SourceOptionGroup** *(string) --* 

          Specifies the name of the option group from which this option group is copied.

          
        

        - **SourceAccountId** *(string) --* 

          Specifies the Amazon Web Services account ID for the option group from which this option group is copied.

          
        

        - **CopyTimestamp** *(datetime) --* 

          Indicates when the option group was copied.

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

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

  

  **Examples**

  This example creates an option group.
  ::

    response = client.create_option_group(
        EngineName='MySQL',
        MajorEngineVersion='5.6',
        OptionGroupDescription='My MySQL 5.6 option group',
        OptionGroupName='mymysqloptiongroup',
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'OptionGroup': {
        },
        'ResponseMetadata': {
            '...': '...',
        },
    }

  