:doc:`AppFabric <../../appfabric>` / Client / create_ingestion_destination

****************************
create_ingestion_destination
****************************



.. py:method:: AppFabric.Client.create_ingestion_destination(**kwargs)

  

  Creates an ingestion destination, which specifies how an application's ingested data is processed by Amazon Web Services AppFabric and where it's delivered.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appfabric-2023-05-19/CreateIngestionDestination>`_  


  **Request Syntax**
  ::

    response = client.create_ingestion_destination(
        appBundleIdentifier='string',
        ingestionIdentifier='string',
        processingConfiguration={
            'auditLog': {
                'schema': 'ocsf'|'raw',
                'format': 'json'|'parquet'
            }
        },
        destinationConfiguration={
            'auditLog': {
                'destination': {
                    's3Bucket': {
                        'bucketName': 'string',
                        'prefix': 'string'
                    },
                    'firehoseStream': {
                        'streamName': 'string'
                    }
                }
            }
        },
        clientToken='string',
        tags=[
            {
                'key': 'string',
                'value': 'string'
            },
        ]
    )
    
  :type appBundleIdentifier: string
  :param appBundleIdentifier: **[REQUIRED]** 

    The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the app bundle to use for the request.

    

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

    The Amazon Resource Name (ARN) or Universal Unique Identifier (UUID) of the ingestion to use for the request.

    

  
  :type processingConfiguration: dict
  :param processingConfiguration: **[REQUIRED]** 

    Contains information about how ingested data is processed.

    .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``auditLog``. 

  
    - **auditLog** *(dict) --* 

      Contains information about an audit log processing configuration.

      

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

        The event schema in which the audit logs need to be formatted.

        

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

        The format in which the audit logs need to be formatted.

        

      
    
  
  :type destinationConfiguration: dict
  :param destinationConfiguration: **[REQUIRED]** 

    Contains information about the destination of ingested data.

    .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``auditLog``. 

  
    - **auditLog** *(dict) --* 

      Contains information about an audit log destination configuration.

      

    
      - **destination** *(dict) --* **[REQUIRED]** 

        Contains information about an audit log destination.

        .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``s3Bucket``, ``firehoseStream``. 

      
        - **s3Bucket** *(dict) --* 

          Contains information about an Amazon S3 bucket.

          

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

            The name of the Amazon S3 bucket.

            

          
          - **prefix** *(string) --* 

            The object key to use.

            

          
        
        - **firehoseStream** *(dict) --* 

          Contains information about an Amazon Kinesis Data Firehose delivery stream.

          

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

            The name of the Amazon Kinesis Data Firehose delivery stream.

            

          
        
      
    
  
  :type clientToken: string
  :param clientToken: 

    Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a `UUID type of value <https://wikipedia.org/wiki/Universally_unique_identifier>`__.

     

    If you don't provide this value, then Amazon Web Services generates a random one for you.

     

    If you retry the operation with the same ``ClientToken``, but with different parameters, the retry fails with an ``IdempotentParameterMismatch`` error.

    This field is autopopulated if not provided.

  
  :type tags: list
  :param tags: 

    A map of the key-value pairs of the tag or tags to assign to the resource.

    

  
    - *(dict) --* 

      The key or keys of the key-value pairs for the tag or tags assigned to a resource.

      

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

        Tag key.

        

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

        Tag value.

        

      
    

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

    
    ::

      {
          'ingestionDestination': {
              'arn': 'string',
              'ingestionArn': 'string',
              'processingConfiguration': {
                  'auditLog': {
                      'schema': 'ocsf'|'raw',
                      'format': 'json'|'parquet'
                  }
              },
              'destinationConfiguration': {
                  'auditLog': {
                      'destination': {
                          's3Bucket': {
                              'bucketName': 'string',
                              'prefix': 'string'
                          },
                          'firehoseStream': {
                              'streamName': 'string'
                          }
                      }
                  }
              },
              'status': 'Active'|'Failed',
              'statusReason': 'string',
              'createdAt': datetime(2015, 1, 1),
              'updatedAt': datetime(2015, 1, 1)
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **ingestionDestination** *(dict) --* 

        Contains information about an ingestion destination.

        
        

        - **arn** *(string) --* 

          The Amazon Resource Name (ARN) of the ingestion destination.

          
        

        - **ingestionArn** *(string) --* 

          The Amazon Resource Name (ARN) of the ingestion.

          
        

        - **processingConfiguration** *(dict) --* 

          Contains information about how ingested data is processed.

          .. note::    This is a Tagged Union structure. Only one of the     following top level keys will be set: ``auditLog``.     If a client receives an unknown member it will     set ``SDK_UNKNOWN_MEMBER`` as the top level key,     which maps to the name or tag of the unknown     member. The structure of ``SDK_UNKNOWN_MEMBER`` is     as follows::

                    'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}


        
          

          - **auditLog** *(dict) --* 

            Contains information about an audit log processing configuration.

            
            

            - **schema** *(string) --* 

              The event schema in which the audit logs need to be formatted.

              
            

            - **format** *(string) --* 

              The format in which the audit logs need to be formatted.

              
        
      
        

        - **destinationConfiguration** *(dict) --* 

          Contains information about the destination of ingested data.

          .. note::    This is a Tagged Union structure. Only one of the     following top level keys will be set: ``auditLog``.     If a client receives an unknown member it will     set ``SDK_UNKNOWN_MEMBER`` as the top level key,     which maps to the name or tag of the unknown     member. The structure of ``SDK_UNKNOWN_MEMBER`` is     as follows::

                    'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}


        
          

          - **auditLog** *(dict) --* 

            Contains information about an audit log destination configuration.

            
            

            - **destination** *(dict) --* 

              Contains information about an audit log destination.

              .. note::    This is a Tagged Union structure. Only one of the     following top level keys will be set: ``s3Bucket``, ``firehoseStream``.     If a client receives an unknown member it will     set ``SDK_UNKNOWN_MEMBER`` as the top level key,     which maps to the name or tag of the unknown     member. The structure of ``SDK_UNKNOWN_MEMBER`` is     as follows::

                            'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}


            
              

              - **s3Bucket** *(dict) --* 

                Contains information about an Amazon S3 bucket.

                
                

                - **bucketName** *(string) --* 

                  The name of the Amazon S3 bucket.

                  
                

                - **prefix** *(string) --* 

                  The object key to use.

                  
            
              

              - **firehoseStream** *(dict) --* 

                Contains information about an Amazon Kinesis Data Firehose delivery stream.

                
                

                - **streamName** *(string) --* 

                  The name of the Amazon Kinesis Data Firehose delivery stream.

                  
            
          
        
      
        

        - **status** *(string) --* 

          The state of the ingestion destination.

           

          The following states are possible:

           

          
          * ``Active``: The ingestion destination is active and is ready to be used.
           
          * ``Failed``: The ingestion destination has failed. If the ingestion destination is in this state, you should verify the ingestion destination configuration and try again.
          

          
        

        - **statusReason** *(string) --* 

          The reason for the current status of the ingestion destination.

           

          Only present when the ``status`` of ingestion destination is ``Failed``.

          
        

        - **createdAt** *(datetime) --* 

          The timestamp of when the ingestion destination was created.

          
        

        - **updatedAt** *(datetime) --* 

          The timestamp of when the ingestion destination was last updated.

          
    
  
  **Exceptions**
  
  *   :py:class:`AppFabric.Client.exceptions.InternalServerException`

  
  *   :py:class:`AppFabric.Client.exceptions.ServiceQuotaExceededException`

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

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

  
  *   :py:class:`AppFabric.Client.exceptions.ValidationException`

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

  