:doc:`AppIntegrationsService <../../appintegrations>` / Client / create_data_integration

***********************
create_data_integration
***********************



.. py:method:: AppIntegrationsService.Client.create_data_integration(**kwargs)

  

  Creates and persists a DataIntegration resource.

   

  .. note::

    

    You cannot create a DataIntegration association for a DataIntegration that has been previously associated. Use a different DataIntegration, or recreate the DataIntegration using the ``CreateDataIntegration`` API.

    

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/CreateDataIntegration>`_  


  **Request Syntax**
  ::

    response = client.create_data_integration(
        Name='string',
        Description='string',
        KmsKey='string',
        SourceURI='string',
        ScheduleConfig={
            'FirstExecutionFrom': 'string',
            'Object': 'string',
            'ScheduleExpression': 'string'
        },
        Tags={
            'string': 'string'
        },
        ClientToken='string',
        FileConfiguration={
            'Folders': [
                'string',
            ],
            'Filters': {
                'string': [
                    'string',
                ]
            }
        },
        ObjectConfiguration={
            'string': {
                'string': [
                    'string',
                ]
            }
        }
    )
    
  :type Name: string
  :param Name: **[REQUIRED]** 

    The name of the DataIntegration.

    

  
  :type Description: string
  :param Description: 

    A description of the DataIntegration.

    

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

    The KMS key ARN for the DataIntegration.

    

  
  :type SourceURI: string
  :param SourceURI: 

    The URI of the data source.

    

  
  :type ScheduleConfig: dict
  :param ScheduleConfig: 

    The name of the data and how often it should be pulled from the source.

    

  
    - **FirstExecutionFrom** *(string) --* 

      The start date for objects to import in the first flow run as an Unix/epoch timestamp in milliseconds or in ISO-8601 format.

      

    
    - **Object** *(string) --* 

      The name of the object to pull from the data source.

      

    
    - **ScheduleExpression** *(string) --* **[REQUIRED]** 

      How often the data should be pulled from data source.

      

    
  
  :type Tags: dict
  :param Tags: 

    The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type ClientToken: string
  :param ClientToken: 

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see `Making retries safe with idempotent APIs <https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/>`__.

    This field is autopopulated if not provided.

  
  :type FileConfiguration: dict
  :param FileConfiguration: 

    The configuration for what files should be pulled from the source.

    

  
    - **Folders** *(list) --* **[REQUIRED]** 

      Identifiers for the source folders to pull all files from recursively.

      

    
      - *(string) --* 

      
  
    - **Filters** *(dict) --* 

      Restrictions for what files should be pulled from the source.

      

    
      - *(string) --* 

      
        - *(list) --* 

        
          - *(string) --* 

          
      
  

  
  :type ObjectConfiguration: dict
  :param ObjectConfiguration: 

    The configuration for what data should be pulled from the source.

    

  
    - *(string) --* 

    
      - *(dict) --* 

      
        - *(string) --* 

        
          - *(list) --* 

          
            - *(string) --* 

            
        
    
  


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

    
    ::

      {
          'Arn': 'string',
          'Id': 'string',
          'Name': 'string',
          'Description': 'string',
          'KmsKey': 'string',
          'SourceURI': 'string',
          'ScheduleConfiguration': {
              'FirstExecutionFrom': 'string',
              'Object': 'string',
              'ScheduleExpression': 'string'
          },
          'Tags': {
              'string': 'string'
          },
          'ClientToken': 'string',
          'FileConfiguration': {
              'Folders': [
                  'string',
              ],
              'Filters': {
                  'string': [
                      'string',
                  ]
              }
          },
          'ObjectConfiguration': {
              'string': {
                  'string': [
                      'string',
                  ]
              }
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **Arn** *(string) --* 

        The Amazon Resource Name (ARN)

        
      

      - **Id** *(string) --* 

        A unique identifier.

        
      

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

        The name of the DataIntegration.

        
      

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

        A description of the DataIntegration.

        
      

      - **KmsKey** *(string) --* 

        The KMS key ARN for the DataIntegration.

        
      

      - **SourceURI** *(string) --* 

        The URI of the data source.

        
      

      - **ScheduleConfiguration** *(dict) --* 

        The name of the data and how often it should be pulled from the source.

        
        

        - **FirstExecutionFrom** *(string) --* 

          The start date for objects to import in the first flow run as an Unix/epoch timestamp in milliseconds or in ISO-8601 format.

          
        

        - **Object** *(string) --* 

          The name of the object to pull from the data source.

          
        

        - **ScheduleExpression** *(string) --* 

          How often the data should be pulled from data source.

          
    
      

      - **Tags** *(dict) --* 

        The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }.

        
        

        - *(string) --* 
          

          - *(string) --* 
    
  
      

      - **ClientToken** *(string) --* 

        A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see `Making retries safe with idempotent APIs <https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/>`__.

        
      

      - **FileConfiguration** *(dict) --* 

        The configuration for what files should be pulled from the source.

        
        

        - **Folders** *(list) --* 

          Identifiers for the source folders to pull all files from recursively.

          
          

          - *(string) --* 
      
        

        - **Filters** *(dict) --* 

          Restrictions for what files should be pulled from the source.

          
          

          - *(string) --* 
            

            - *(list) --* 
              

              - *(string) --* 
          
      
    
    
      

      - **ObjectConfiguration** *(dict) --* 

        The configuration for what data should be pulled from the source.

        
        

        - *(string) --* 
          

          - *(dict) --* 
            

            - *(string) --* 
              

              - *(list) --* 
                

                - *(string) --* 
            
        
      
    
  
  
  **Exceptions**
  
  *   :py:class:`AppIntegrationsService.Client.exceptions.InternalServiceError`

  
  *   :py:class:`AppIntegrationsService.Client.exceptions.ResourceQuotaExceededException`

  
  *   :py:class:`AppIntegrationsService.Client.exceptions.DuplicateResourceException`

  
  *   :py:class:`AppIntegrationsService.Client.exceptions.ThrottlingException`

  
  *   :py:class:`AppIntegrationsService.Client.exceptions.InvalidRequestException`

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

  