:doc:`Transfer <../../transfer>` / Client / create_web_app

**************
create_web_app
**************



.. py:method:: Transfer.Client.create_web_app(**kwargs)

  

  Creates a web app based on specified parameters, and returns the ID for the new web app. You can configure the web app to be publicly accessible or hosted within a VPC.

   

  For more information about using VPC endpoints with Transfer Family, see `Create a Transfer Family web app in a VPC <https://docs.aws.amazon.com/transfer/latest/userguide/create-webapp-in-vpc.html>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateWebApp>`_  


  **Request Syntax**
  ::

    response = client.create_web_app(
        IdentityProviderDetails={
            'IdentityCenterConfig': {
                'InstanceArn': 'string',
                'Role': 'string'
            }
        },
        AccessEndpoint='string',
        WebAppUnits={
            'Provisioned': 123
        },
        Tags=[
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        WebAppEndpointPolicy='FIPS'|'STANDARD',
        EndpointDetails={
            'Vpc': {
                'SubnetIds': [
                    'string',
                ],
                'VpcId': 'string',
                'SecurityGroupIds': [
                    'string',
                ]
            }
        }
    )
    
  :type IdentityProviderDetails: dict
  :param IdentityProviderDetails: **[REQUIRED]** 

    You can provide a structure that contains the details for the identity provider to use with your web app.

     

    For more details about this parameter, see `Configure your identity provider for Transfer Family web apps <https://docs.aws.amazon.com/transfer/latest/userguide/webapp-identity-center.html>`__.

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

  
    - **IdentityCenterConfig** *(dict) --* 

      A structure that describes the values to use for the IAM Identity Center settings when you create a web app.

      

    
      - **InstanceArn** *(string) --* 

        The Amazon Resource Name (ARN) for the IAM Identity Center used for the web app.

        

      
      - **Role** *(string) --* 

        The IAM role in IAM Identity Center used for the web app.

        

      
    
  
  :type AccessEndpoint: string
  :param AccessEndpoint: 

    The ``AccessEndpoint`` is the URL that you provide to your users for them to interact with the Transfer Family web app. You can specify a custom URL or use the default value.

     

    Before you enter a custom URL for this parameter, follow the steps described in `Update your access endpoint with a custom URL <https://docs.aws.amazon.com/transfer/latest/userguide/webapp-customize.html>`__.

    

  
  :type WebAppUnits: dict
  :param WebAppUnits: 

    A union that contains the value for number of concurrent connections or the user sessions on your web app.

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

  
    - **Provisioned** *(integer) --* 

      An integer that represents the number of units for your desired number of concurrent connections, or the number of user sessions on your web app at the same time.

       

      Each increment allows an additional 250 concurrent sessions: a value of ``1`` sets the number of concurrent sessions to 250; ``2`` sets a value of 500, and so on.

      

    
  
  :type Tags: list
  :param Tags: 

    Key-value pairs that can be used to group and search for web apps.

    

  
    - *(dict) --* 

      Creates a key-value pair for a specific resource. Tags are metadata that you can use to search for and group a resource for various purposes. You can apply tags to servers, users, and roles. A tag key can take more than one value. For example, to group servers for accounting purposes, you might create a tag called ``Group`` and assign the values ``Research`` and ``Accounting`` to that group.

      

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

        The name assigned to the tag that you create.

        

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

        Contains one or more values that you assigned to the key name you create.

        

      
    

  :type WebAppEndpointPolicy: string
  :param WebAppEndpointPolicy: 

    Setting for the type of endpoint policy for the web app. The default value is ``STANDARD``.

     

    If you are creating the web app in an Amazon Web Services GovCloud (US) Region, you can set this parameter to ``FIPS``.

    

  
  :type EndpointDetails: dict
  :param EndpointDetails: 

    The endpoint configuration for the web app. You can specify whether the web app endpoint is publicly accessible or hosted within a VPC.

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

  
    - **Vpc** *(dict) --* 

      The VPC configuration for hosting the web app endpoint within a VPC.

      

    
      - **SubnetIds** *(list) --* 

        The list of subnet IDs within the VPC where the web app endpoint will be deployed. These subnets must be in the same VPC specified in the VpcId parameter.

        

      
        - *(string) --* 

        
    
      - **VpcId** *(string) --* 

        The identifier of the VPC where the web app endpoint will be hosted.

        

      
      - **SecurityGroupIds** *(list) --* 

        The list of security group IDs that control access to the web app endpoint. These security groups determine which sources can access the endpoint based on IP addresses and port configurations.

        

      
        - *(string) --* 

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

    
    ::

      {
          'WebAppId': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **WebAppId** *(string) --* 

        Returns a unique identifier for the web app.

        
  
  **Exceptions**
  
  *   :py:class:`Transfer.Client.exceptions.ResourceNotFoundException`

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

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

  
  *   :py:class:`Transfer.Client.exceptions.InternalServiceError`

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

  