:doc:`Glue <../../glue>` / Client / create_integration

******************
create_integration
******************



.. py:method:: Glue.Client.create_integration(**kwargs)

  

  Creates a Zero-ETL integration in the caller's account between two resources with Amazon Resource Names (ARNs): the ``SourceArn`` and ``TargetArn``.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateIntegration>`_  


  **Request Syntax**
  ::

    response = client.create_integration(
        IntegrationName='string',
        SourceArn='string',
        TargetArn='string',
        Description='string',
        DataFilter='string',
        KmsKeyId='string',
        AdditionalEncryptionContext={
            'string': 'string'
        },
        Tags=[
            {
                'key': 'string',
                'value': 'string'
            },
        ],
        IntegrationConfig={
            'RefreshInterval': 'string',
            'SourceProperties': {
                'string': 'string'
            },
            'ContinuousSync': True|False
        }
    )
    
  :type IntegrationName: string
  :param IntegrationName: **[REQUIRED]** 

    A unique name for an integration in Glue.

    

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

    The ARN of the source resource for the integration.

    

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

    The ARN of the target resource for the integration.

    

  
  :type Description: string
  :param Description: 

    A description of the integration.

    

  
  :type DataFilter: string
  :param DataFilter: 

    Selects source tables for the integration using Maxwell filter syntax.

    

  
  :type KmsKeyId: string
  :param KmsKeyId: 

    The ARN of a KMS key used for encrypting the channel.

    

  
  :type AdditionalEncryptionContext: dict
  :param AdditionalEncryptionContext: 

    An optional set of non-secret key–value pairs that contains additional contextual information for encryption. This can only be provided if ``KMSKeyId`` is provided.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type Tags: list
  :param Tags: 

    Metadata assigned to the resource consisting of a list of key-value pairs.

    

  
    - *(dict) --* 

      The ``Tag`` object represents a label that you can assign to an Amazon Web Services resource. Each tag consists of a key and an optional value, both of which you define.

       

      For more information about tags, and controlling access to resources in Glue, see `Amazon Web Services Tags in Glue <https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html>`__ and `Specifying Glue Resource ARNs <https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html>`__ in the developer guide.

      

    
      - **key** *(string) --* 

        The tag key. The key is required when you create a tag on an object. The key is case-sensitive, and must not contain the prefix aws.

        

      
      - **value** *(string) --* 

        The tag value. The value is optional when you create a tag on an object. The value is case-sensitive, and must not contain the prefix aws.

        

      
    

  :type IntegrationConfig: dict
  :param IntegrationConfig: 

    The configuration settings.

    

  
    - **RefreshInterval** *(string) --* 

      Specifies the frequency at which CDC (Change Data Capture) pulls or incremental loads should occur. This parameter provides flexibility to align the refresh rate with your specific data update patterns, system load considerations, and performance optimization goals. Time increment can be set from 15 minutes to 8640 minutes (six days).

      

    
    - **SourceProperties** *(dict) --* 

      A collection of key-value pairs that specify additional properties for the integration source. These properties provide configuration options that can be used to customize the behavior of the ODB source during data integration operations.

      

    
      - *(string) --* 

      
        - *(string) --* 

        
  

    - **ContinuousSync** *(boolean) --* 

      Enables continuous synchronization for on-demand data extractions from SaaS applications to Amazon Web Services data services like Amazon Redshift and Amazon S3.

      

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

    
    ::

      {
          'SourceArn': 'string',
          'TargetArn': 'string',
          'IntegrationName': 'string',
          'Description': 'string',
          'IntegrationArn': 'string',
          'KmsKeyId': 'string',
          'AdditionalEncryptionContext': {
              'string': 'string'
          },
          'Tags': [
              {
                  'key': 'string',
                  'value': 'string'
              },
          ],
          'Status': 'CREATING'|'ACTIVE'|'MODIFYING'|'FAILED'|'DELETING'|'SYNCING'|'NEEDS_ATTENTION',
          'CreateTime': datetime(2015, 1, 1),
          'Errors': [
              {
                  'ErrorCode': 'string',
                  'ErrorMessage': 'string'
              },
          ],
          'DataFilter': 'string',
          'IntegrationConfig': {
              'RefreshInterval': 'string',
              'SourceProperties': {
                  'string': 'string'
              },
              'ContinuousSync': True|False
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **SourceArn** *(string) --* 

        The ARN of the source resource for the integration.

        
      

      - **TargetArn** *(string) --* 

        The ARN of the target resource for the integration.

        
      

      - **IntegrationName** *(string) --* 

        A unique name for an integration in Glue.

        
      

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

        A description of the integration.

        
      

      - **IntegrationArn** *(string) --* 

        The Amazon Resource Name (ARN) for the created integration.

        
      

      - **KmsKeyId** *(string) --* 

        The ARN of a KMS key used for encrypting the channel.

        
      

      - **AdditionalEncryptionContext** *(dict) --* 

        An optional set of non-secret key–value pairs that contains additional contextual information for encryption.

        
        

        - *(string) --* 
          

          - *(string) --* 
    
  
      

      - **Tags** *(list) --* 

        Metadata assigned to the resource consisting of a list of key-value pairs.

        
        

        - *(dict) --* 

          The ``Tag`` object represents a label that you can assign to an Amazon Web Services resource. Each tag consists of a key and an optional value, both of which you define.

           

          For more information about tags, and controlling access to resources in Glue, see `Amazon Web Services Tags in Glue <https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html>`__ and `Specifying Glue Resource ARNs <https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html>`__ in the developer guide.

          
          

          - **key** *(string) --* 

            The tag key. The key is required when you create a tag on an object. The key is case-sensitive, and must not contain the prefix aws.

            
          

          - **value** *(string) --* 

            The tag value. The value is optional when you create a tag on an object. The value is case-sensitive, and must not contain the prefix aws.

            
      
    
      

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

        The status of the integration being created.

         

        The possible statuses are:

         

        
        * CREATING: The integration is being created.
         
        * ACTIVE: The integration creation succeeds.
         
        * MODIFYING: The integration is being modified.
         
        * FAILED: The integration creation fails.
         
        * DELETING: The integration is deleted.
         
        * SYNCING: The integration is synchronizing.
         
        * NEEDS_ATTENTION: The integration needs attention, such as synchronization.
        

        
      

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

        The time when the integration was created, in UTC.

        
      

      - **Errors** *(list) --* 

        A list of errors associated with the integration creation.

        
        

        - *(dict) --* 

          An error associated with a zero-ETL integration.

          
          

          - **ErrorCode** *(string) --* 

            The code associated with this error.

            
          

          - **ErrorMessage** *(string) --* 

            A message describing the error.

            
      
    
      

      - **DataFilter** *(string) --* 

        Selects source tables for the integration using Maxwell filter syntax.

        
      

      - **IntegrationConfig** *(dict) --* 

        The configuration settings.

        
        

        - **RefreshInterval** *(string) --* 

          Specifies the frequency at which CDC (Change Data Capture) pulls or incremental loads should occur. This parameter provides flexibility to align the refresh rate with your specific data update patterns, system load considerations, and performance optimization goals. Time increment can be set from 15 minutes to 8640 minutes (six days).

          
        

        - **SourceProperties** *(dict) --* 

          A collection of key-value pairs that specify additional properties for the integration source. These properties provide configuration options that can be used to customize the behavior of the ODB source during data integration operations.

          
          

          - *(string) --* 
            

            - *(string) --* 
      
    
        

        - **ContinuousSync** *(boolean) --* 

          Enables continuous synchronization for on-demand data extractions from SaaS applications to Amazon Web Services data services like Amazon Redshift and Amazon S3.

          
    
  
  **Exceptions**
  
  *   :py:class:`Glue.Client.exceptions.ValidationException`

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

  
  *   :py:class:`Glue.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`Glue.Client.exceptions.InternalServerException`

  
  *   :py:class:`Glue.Client.exceptions.IntegrationConflictOperationFault`

  
  *   :py:class:`Glue.Client.exceptions.IntegrationQuotaExceededFault`

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

  
  *   :py:class:`Glue.Client.exceptions.EntityNotFoundException`

  
  *   :py:class:`Glue.Client.exceptions.InternalServiceException`

  
  *   :py:class:`Glue.Client.exceptions.ConflictException`

  
  *   :py:class:`Glue.Client.exceptions.ResourceNumberLimitExceededException`

  
  *   :py:class:`Glue.Client.exceptions.InvalidInputException`

  