:doc:`AmplifyBackend <../../amplifybackend>` / Client / create_backend_api

******************
create_backend_api
******************



.. py:method:: AmplifyBackend.Client.create_backend_api(**kwargs)

  

  Creates a new backend API resource.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/amplifybackend-2020-08-11/CreateBackendAPI>`_  


  **Request Syntax**
  ::

    response = client.create_backend_api(
        AppId='string',
        BackendEnvironmentName='string',
        ResourceConfig={
            'AdditionalAuthTypes': [
                {
                    'Mode': 'API_KEY'|'AWS_IAM'|'AMAZON_COGNITO_USER_POOLS'|'OPENID_CONNECT',
                    'Settings': {
                        'CognitoUserPoolId': 'string',
                        'Description': 'string',
                        'ExpirationTime': 123.0,
                        'OpenIDAuthTTL': 'string',
                        'OpenIDClientId': 'string',
                        'OpenIDIatTTL': 'string',
                        'OpenIDIssueURL': 'string',
                        'OpenIDProviderName': 'string'
                    }
                },
            ],
            'ApiName': 'string',
            'ConflictResolution': {
                'ResolutionStrategy': 'OPTIMISTIC_CONCURRENCY'|'LAMBDA'|'AUTOMERGE'|'NONE'
            },
            'DefaultAuthType': {
                'Mode': 'API_KEY'|'AWS_IAM'|'AMAZON_COGNITO_USER_POOLS'|'OPENID_CONNECT',
                'Settings': {
                    'CognitoUserPoolId': 'string',
                    'Description': 'string',
                    'ExpirationTime': 123.0,
                    'OpenIDAuthTTL': 'string',
                    'OpenIDClientId': 'string',
                    'OpenIDIatTTL': 'string',
                    'OpenIDIssueURL': 'string',
                    'OpenIDProviderName': 'string'
                }
            },
            'Service': 'string',
            'TransformSchema': 'string'
        },
        ResourceName='string'
    )
    
  :type AppId: string
  :param AppId: **[REQUIRED]** 

    The app ID.

    

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

    The name of the backend environment.

    

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

    The resource configuration for this request.

    

  
    - **AdditionalAuthTypes** *(list) --* 

      Additional authentication methods used to interact with your data models.

      

    
      - *(dict) --* 

        Describes the auth types for your configured data models.

        

      
        - **Mode** *(string) --* 

          Describes the authentication mode.

          

        
        - **Settings** *(dict) --* 

          Describes settings for the authentication mode.

          

        
          - **CognitoUserPoolId** *(string) --* 

            The Amazon Cognito user pool ID, if Amazon Cognito was used as an authentication setting to access your data models.

            

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

            The API key description for API_KEY, if it was used as an authentication mechanism to access your data models.

            

          
          - **ExpirationTime** *(float) --* 

            The API key expiration time for API_KEY, if it was used as an authentication mechanism to access your data models.

            

          
          - **OpenIDAuthTTL** *(string) --* 

            The expiry time for the OpenID authentication mechanism.

            

          
          - **OpenIDClientId** *(string) --* 

            The clientID for openID, if openID was used as an authentication setting to access your data models.

            

          
          - **OpenIDIatTTL** *(string) --* 

            The expiry time for the OpenID authentication mechanism.

            

          
          - **OpenIDIssueURL** *(string) --* 

            The openID issuer URL, if openID was used as an authentication setting to access your data models.

            

          
          - **OpenIDProviderName** *(string) --* 

            The OpenID provider name, if OpenID was used as an authentication mechanism to access your data models.

            

          
        
      
  
    - **ApiName** *(string) --* 

      The API name used to interact with the data model, configured as a part of your Amplify project.

      

    
    - **ConflictResolution** *(dict) --* 

      The conflict resolution strategy for your data stored in the data models.

      

    
      - **ResolutionStrategy** *(string) --* 

        The strategy for conflict resolution.

        

      
    
    - **DefaultAuthType** *(dict) --* 

      The default authentication type for interacting with the configured data models in your Amplify project.

      

    
      - **Mode** *(string) --* 

        Describes the authentication mode.

        

      
      - **Settings** *(dict) --* 

        Describes settings for the authentication mode.

        

      
        - **CognitoUserPoolId** *(string) --* 

          The Amazon Cognito user pool ID, if Amazon Cognito was used as an authentication setting to access your data models.

          

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

          The API key description for API_KEY, if it was used as an authentication mechanism to access your data models.

          

        
        - **ExpirationTime** *(float) --* 

          The API key expiration time for API_KEY, if it was used as an authentication mechanism to access your data models.

          

        
        - **OpenIDAuthTTL** *(string) --* 

          The expiry time for the OpenID authentication mechanism.

          

        
        - **OpenIDClientId** *(string) --* 

          The clientID for openID, if openID was used as an authentication setting to access your data models.

          

        
        - **OpenIDIatTTL** *(string) --* 

          The expiry time for the OpenID authentication mechanism.

          

        
        - **OpenIDIssueURL** *(string) --* 

          The openID issuer URL, if openID was used as an authentication setting to access your data models.

          

        
        - **OpenIDProviderName** *(string) --* 

          The OpenID provider name, if OpenID was used as an authentication mechanism to access your data models.

          

        
      
    
    - **Service** *(string) --* 

      The service used to provision and interact with the data model.

      

    
    - **TransformSchema** *(string) --* 

      The definition of the data model in the annotated transform of the GraphQL schema.

      

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

    The name of this resource.

    

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

    
    ::

      {
          'AppId': 'string',
          'BackendEnvironmentName': 'string',
          'Error': 'string',
          'JobId': 'string',
          'Operation': 'string',
          'Status': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 

      200 response

      
      

      - **AppId** *(string) --* 

        The app ID.

        
      

      - **BackendEnvironmentName** *(string) --* 

        The name of the backend environment.

        
      

      - **Error** *(string) --* 

        If the request fails, this error is returned.

        
      

      - **JobId** *(string) --* 

        The ID for the job.

        
      

      - **Operation** *(string) --* 

        The name of the operation.

        
      

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

        The current status of the request.

        
  
  **Exceptions**
  
  *   :py:class:`AmplifyBackend.Client.exceptions.NotFoundException`

  
  *   :py:class:`AmplifyBackend.Client.exceptions.GatewayTimeoutException`

  
  *   :py:class:`AmplifyBackend.Client.exceptions.TooManyRequestsException`

  
  *   :py:class:`AmplifyBackend.Client.exceptions.BadRequestException`

  