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

*************************
create_event_subscription
*************************



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

  

  Creates an RDS event notification subscription. This operation requires a topic Amazon Resource Name (ARN) created by either the RDS console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console.

   

  You can specify the type of source ( ``SourceType``) that you want to be notified of and provide a list of RDS sources ( ``SourceIds``) that triggers the events. You can also provide a list of event categories ( ``EventCategories``) for events that you want to be notified of. For example, you can specify ``SourceType`` = ``db-instance``, ``SourceIds`` = ``mydbinstance1``, ``mydbinstance2`` and ``EventCategories`` = ``Availability``, ``Backup``.

   

  If you specify both the ``SourceType`` and ``SourceIds``, such as ``SourceType`` = ``db-instance`` and ``SourceIds`` = ``myDBInstance1``, you are notified of all the ``db-instance`` events for the specified source. If you specify a ``SourceType`` but do not specify ``SourceIds``, you receive notice of the events for that source type for all your RDS sources. If you don't specify either the SourceType or the ``SourceIds``, you are notified of events generated from all RDS sources belonging to your customer account.

   

  For more information about subscribing to an event for RDS DB engines, see `Subscribing to Amazon RDS event notification <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Subscribing.html>`__ in the *Amazon RDS User Guide*.

   

  For more information about subscribing to an event for Aurora DB engines, see `Subscribing to Amazon RDS event notification <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Events.Subscribing.html>`__ in the *Amazon Aurora User Guide*.

  

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


  **Request Syntax**
  ::

    response = client.create_event_subscription(
        SubscriptionName='string',
        SnsTopicArn='string',
        SourceType='string',
        EventCategories=[
            'string',
        ],
        SourceIds=[
            'string',
        ],
        Enabled=True|False,
        Tags=[
            {
                'Key': 'string',
                'Value': 'string'
            },
        ]
    )
    
  :type SubscriptionName: string
  :param SubscriptionName: **[REQUIRED]** 

    The name of the subscription.

     

    Constraints: The name must be less than 255 characters.

    

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

    The Amazon Resource Name (ARN) of the SNS topic created for event notification. SNS automatically creates the ARN when you create a topic and subscribe to it.

     

    .. note::

      

      RDS doesn't support FIFO (first in, first out) topics. For more information, see `Message ordering and deduplication (FIFO topics) <https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html>`__ in the *Amazon Simple Notification Service Developer Guide*.

      

    

  
  :type SourceType: string
  :param SourceType: 

    The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you set this parameter to ``db-instance``. For RDS Proxy events, specify ``db-proxy``. If this value isn't specified, all events are returned.

     

    Valid Values: `` db-instance | db-cluster | db-parameter-group | db-security-group | db-snapshot | db-cluster-snapshot | db-proxy | zero-etl | custom-engine-version | blue-green-deployment``

    

  
  :type EventCategories: list
  :param EventCategories: 

    A list of event categories for a particular source type ( ``SourceType``) that you want to subscribe to. You can see a list of the categories for a given source type in the "Amazon RDS event categories and event messages" section of the `Amazon RDS User Guide <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Messages.html>`__ or the `Amazon Aurora User Guide <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Events.Messages.html>`__. You can also see this list by using the ``DescribeEventCategories`` operation.

    

  
    - *(string) --* 

    

  :type SourceIds: list
  :param SourceIds: 

    The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens.

     

    Constraints:

     

    
    * If ``SourceIds`` are supplied, ``SourceType`` must also be provided.
     
    * If the source type is a DB instance, a ``DBInstanceIdentifier`` value must be supplied.
     
    * If the source type is a DB cluster, a ``DBClusterIdentifier`` value must be supplied.
     
    * If the source type is a DB parameter group, a ``DBParameterGroupName`` value must be supplied.
     
    * If the source type is a DB security group, a ``DBSecurityGroupName`` value must be supplied.
     
    * If the source type is a DB snapshot, a ``DBSnapshotIdentifier`` value must be supplied.
     
    * If the source type is a DB cluster snapshot, a ``DBClusterSnapshotIdentifier`` value must be supplied.
     
    * If the source type is an RDS Proxy, a ``DBProxyName`` value must be supplied.
    

    

  
    - *(string) --* 

    

  :type Enabled: boolean
  :param Enabled: 

    Specifies whether to activate the subscription. If the event notification subscription isn't activated, the subscription is created but not active.

    

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

    
    ::

      {
          'EventSubscription': {
              'CustomerAwsId': 'string',
              'CustSubscriptionId': 'string',
              'SnsTopicArn': 'string',
              'Status': 'string',
              'SubscriptionCreationTime': 'string',
              'SourceType': 'string',
              'SourceIdsList': [
                  'string',
              ],
              'EventCategoriesList': [
                  'string',
              ],
              'Enabled': True|False,
              'EventSubscriptionArn': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **EventSubscription** *(dict) --* 

        Contains the results of a successful invocation of the ``DescribeEventSubscriptions`` action.

        
        

        - **CustomerAwsId** *(string) --* 

          The Amazon Web Services customer account associated with the RDS event notification subscription.

          
        

        - **CustSubscriptionId** *(string) --* 

          The RDS event notification subscription Id.

          
        

        - **SnsTopicArn** *(string) --* 

          The topic ARN of the RDS event notification subscription.

          
        

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

          The status of the RDS event notification subscription.

           

          Constraints:

           

          Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist

           

          The status "no-permission" indicates that RDS no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.

          
        

        - **SubscriptionCreationTime** *(string) --* 

          The time the RDS event notification subscription was created.

          
        

        - **SourceType** *(string) --* 

          The source type for the RDS event notification subscription.

          
        

        - **SourceIdsList** *(list) --* 

          A list of source IDs for the RDS event notification subscription.

          
          

          - *(string) --* 
      
        

        - **EventCategoriesList** *(list) --* 

          A list of event categories for the RDS event notification subscription.

          
          

          - *(string) --* 
      
        

        - **Enabled** *(boolean) --* 

          Specifies whether the subscription is enabled. True indicates the subscription is enabled.

          
        

        - **EventSubscriptionArn** *(string) --* 

          The Amazon Resource Name (ARN) for the event subscription.

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

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

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

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

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

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

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

  

  **Examples**

  This example creates an event notification subscription.
  ::

    response = client.create_event_subscription(
        Enabled=True,
        EventCategories=[
            'availability',
        ],
        SnsTopicArn='arn:aws:sns:us-east-1:992648334831:MyDemoSNSTopic',
        SourceIds=[
            'mymysqlinstance',
        ],
        SourceType='db-instance',
        SubscriptionName='mymysqleventsubscription',
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'EventSubscription': {
        },
        'ResponseMetadata': {
            '...': '...',
        },
    }

  