:doc:`DatabaseMigrationService <../../dms>` / Client / create_event_subscription

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



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

  

  Creates an DMS event notification subscription.

   

  You can specify the type of source ( ``SourceType``) you want to be notified of, provide a list of DMS source IDs ( ``SourceIds``) that triggers the events, and provide a list of event categories ( ``EventCategories``) for events you want to be notified of. If you specify both the ``SourceType`` and ``SourceIds``, such as ``SourceType = replication-instance`` and ``SourceIdentifier = my-replinstance``, you will be notified of all the replication instance events for the specified source. If you specify a ``SourceType`` but don't specify a ``SourceIdentifier``, you receive notice of the events for that source type for all your DMS sources. If you don't specify either ``SourceType`` nor ``SourceIdentifier``, you will be notified of events generated from all DMS sources belonging to your customer account.

   

  For more information about DMS events, see `Working with Events and Notifications <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Events.html>`__ in the *Database Migration Service User Guide.*

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/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',
                'ResourceArn': 'string'
            },
        ]
    )
    
  :type SubscriptionName: string
  :param SubscriptionName: **[REQUIRED]** 

    The name of the DMS event notification subscription. This name must be less than 255 characters.

    

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

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

    

  
  :type SourceType: string
  :param SourceType: 

    The type of DMS resource that generates the events. For example, if you want to be notified of events generated by a replication instance, you set this parameter to ``replication-instance``. If this value isn't specified, all events are returned.

     

    Valid values: ``replication-instance`` | ``replication-task``

    

  
  :type EventCategories: list
  :param EventCategories: 

    A list of event categories for a source type that you want to subscribe to. For more information, see `Working with Events and Notifications <https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Events.html>`__ in the *Database Migration Service User Guide.*

    

  
    - *(string) --* 

    

  :type SourceIds: list
  :param SourceIds: 

    A list of identifiers for which DMS provides notification events.

     

    If you don't specify a value, notifications are provided for all sources.

     

    If you specify multiple values, they must be of the same type. For example, if you specify a database instance ID, then all of the other values must be database instance IDs.

    

  
    - *(string) --* 

    

  :type Enabled: boolean
  :param Enabled: 

    A Boolean value; set to ``true`` to activate the subscription, or set to ``false`` to create the subscription but not activate it.

    

  
  :type Tags: list
  :param Tags: 

    One or more tags to be assigned to the event subscription.

    

  
    - *(dict) --* 

      A user-defined key-value pair that describes metadata added to an DMS resource and that is used by operations such as the following:

       

      
      * ``AddTagsToResource``
       
      * ``ListTagsForResource``
       
      * ``RemoveTagsFromResource``
      

      

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

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

        

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

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

        

      
      - **ResourceArn** *(string) --* 

        The Amazon Resource Name (ARN) string that uniquely identifies the resource for which the tag is created.

        

      
    

  
  :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
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

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

        The event subscription that was created.

        
        

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

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

          
        

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

          The DMS event notification subscription Id.

          
        

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

          The topic ARN of the DMS event notification subscription.

          
        

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

          The status of the DMS 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 DMS 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 DMS event notification subscription was created.

          
        

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

          The type of DMS resource that generates events.

           

          Valid values: replication-instance | replication-server | security-group | replication-task

          
        

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

          A list of source Ids for the event subscription.

          
          

          - *(string) --* 
      
        

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

          A lists of event categories.

          
          

          - *(string) --* 
      
        

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

          Boolean value that indicates if the event subscription is enabled.

          
    
  
  **Exceptions**
  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.ResourceQuotaExceededFault`

  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.ResourceNotFoundFault`

  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.ResourceAlreadyExistsFault`

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

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

  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.KMSAccessDeniedFault`

  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.KMSDisabledFault`

  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.KMSInvalidStateFault`

  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.KMSNotFoundFault`

  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.KMSThrottlingFault`

  