:doc:`EC2 <../../ec2>` / Client / create_vpc_endpoint_service_configuration

*****************************************
create_vpc_endpoint_service_configuration
*****************************************



.. py:method:: EC2.Client.create_vpc_endpoint_service_configuration(**kwargs)

  

  Creates a VPC endpoint service to which service consumers (Amazon Web Services accounts, users, and IAM roles) can connect.

   

  Before you create an endpoint service, you must create one of the following for your service:

   

  
  * A `Network Load Balancer <https://docs.aws.amazon.com/elasticloadbalancing/latest/network/>`__. Service consumers connect to your service using an interface endpoint.
   
  * A `Gateway Load Balancer <https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/>`__. Service consumers connect to your service using a Gateway Load Balancer endpoint.
  

   

  If you set the private DNS name, you must prove that you own the private DNS domain name.

   

  For more information, see the `Amazon Web Services PrivateLink Guide <https://docs.aws.amazon.com/vpc/latest/privatelink/>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointServiceConfiguration>`_  


  **Request Syntax**
  ::

    response = client.create_vpc_endpoint_service_configuration(
        DryRun=True|False,
        AcceptanceRequired=True|False,
        PrivateDnsName='string',
        NetworkLoadBalancerArns=[
            'string',
        ],
        GatewayLoadBalancerArns=[
            'string',
        ],
        SupportedIpAddressTypes=[
            'string',
        ],
        SupportedRegions=[
            'string',
        ],
        ClientToken='string',
        TagSpecifications=[
            {
                'ResourceType': 'capacity-reservation'|'client-vpn-endpoint'|'customer-gateway'|'carrier-gateway'|'coip-pool'|'declarative-policies-report'|'dedicated-host'|'dhcp-options'|'egress-only-internet-gateway'|'elastic-ip'|'elastic-gpu'|'export-image-task'|'export-instance-task'|'fleet'|'fpga-image'|'host-reservation'|'image'|'image-usage-report'|'import-image-task'|'import-snapshot-task'|'instance'|'instance-event-window'|'internet-gateway'|'ipam'|'ipam-pool'|'ipam-scope'|'ipv4pool-ec2'|'ipv6pool-ec2'|'key-pair'|'launch-template'|'local-gateway'|'local-gateway-route-table'|'local-gateway-virtual-interface'|'local-gateway-virtual-interface-group'|'local-gateway-route-table-vpc-association'|'local-gateway-route-table-virtual-interface-group-association'|'natgateway'|'network-acl'|'network-interface'|'network-insights-analysis'|'network-insights-path'|'network-insights-access-scope'|'network-insights-access-scope-analysis'|'outpost-lag'|'placement-group'|'prefix-list'|'replace-root-volume-task'|'reserved-instances'|'route-table'|'security-group'|'security-group-rule'|'service-link-virtual-interface'|'snapshot'|'spot-fleet-request'|'spot-instances-request'|'subnet'|'subnet-cidr-reservation'|'traffic-mirror-filter'|'traffic-mirror-session'|'traffic-mirror-target'|'transit-gateway'|'transit-gateway-attachment'|'transit-gateway-connect-peer'|'transit-gateway-multicast-domain'|'transit-gateway-policy-table'|'transit-gateway-metering-policy'|'transit-gateway-route-table'|'transit-gateway-route-table-announcement'|'volume'|'vpc'|'vpc-endpoint'|'vpc-endpoint-connection'|'vpc-endpoint-service'|'vpc-endpoint-service-permission'|'vpc-peering-connection'|'vpn-connection'|'vpn-gateway'|'vpc-flow-log'|'capacity-reservation-fleet'|'traffic-mirror-filter-rule'|'vpc-endpoint-connection-device-type'|'verified-access-instance'|'verified-access-group'|'verified-access-endpoint'|'verified-access-policy'|'verified-access-trust-provider'|'vpn-connection-device-type'|'vpc-block-public-access-exclusion'|'vpc-encryption-control'|'route-server'|'route-server-endpoint'|'route-server-peer'|'ipam-resource-discovery'|'ipam-resource-discovery-association'|'instance-connect-endpoint'|'verified-access-endpoint-target'|'ipam-external-resource-verification-token'|'capacity-block'|'mac-modification-task'|'ipam-prefix-list-resolver'|'ipam-policy'|'ipam-prefix-list-resolver-target'|'secondary-interface'|'secondary-network'|'secondary-subnet'|'capacity-manager-data-export'|'vpn-concentrator',
                'Tags': [
                    {
                        'Key': 'string',
                        'Value': 'string'
                    },
                ]
            },
        ]
    )
    
  :type DryRun: boolean
  :param DryRun: 

    Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is ``DryRunOperation``. Otherwise, it is ``UnauthorizedOperation``.

    

  
  :type AcceptanceRequired: boolean
  :param AcceptanceRequired: 

    Indicates whether requests from service consumers to create an endpoint to your service must be accepted manually.

    

  
  :type PrivateDnsName: string
  :param PrivateDnsName: 

    (Interface endpoint configuration) The private DNS name to assign to the VPC endpoint service.

    

  
  :type NetworkLoadBalancerArns: list
  :param NetworkLoadBalancerArns: 

    The Amazon Resource Names (ARNs) of the Network Load Balancers.

    

  
    - *(string) --* 

    

  :type GatewayLoadBalancerArns: list
  :param GatewayLoadBalancerArns: 

    The Amazon Resource Names (ARNs) of the Gateway Load Balancers.

    

  
    - *(string) --* 

    

  :type SupportedIpAddressTypes: list
  :param SupportedIpAddressTypes: 

    The supported IP address types. The possible values are ``ipv4`` and ``ipv6``.

    

  
    - *(string) --* 

    

  :type SupportedRegions: list
  :param SupportedRegions: 

    The Regions from which service consumers can access the service.

    

  
    - *(string) --* 

    

  :type ClientToken: string
  :param ClientToken: 

    Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see `How to ensure idempotency <https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html>`__.

    

  
  :type TagSpecifications: list
  :param TagSpecifications: 

    The tags to associate with the service.

    

  
    - *(dict) --* 

      The tags to apply to a resource when the resource is being created. When you specify a tag, you must specify the resource type to tag, otherwise the request will fail.

       

      .. note::

        

        The ``Valid Values`` lists all the resource types that can be tagged. However, the action you're using might not support tagging all of these resource types. If you try to tag a resource type that is unsupported for the action you're using, you'll get an error.

        

      

    
      - **ResourceType** *(string) --* 

        The type of resource to tag on creation.

        

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

        The tags to apply to the resource.

        

      
        - *(dict) --* 

          Describes a tag.

          

        
          - **Key** *(string) --* 

            The key of the tag.

             

            Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with ``aws:``.

            

          
          - **Value** *(string) --* 

            The value of the tag.

             

            Constraints: Tag values are case-sensitive and accept a maximum of 256 Unicode characters.

            

          
        
    
    

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

    
    ::

      {
          'ServiceConfiguration': {
              'ServiceType': [
                  {
                      'ServiceType': 'Interface'|'Gateway'|'GatewayLoadBalancer'
                  },
              ],
              'ServiceId': 'string',
              'ServiceName': 'string',
              'ServiceState': 'Pending'|'Available'|'Deleting'|'Deleted'|'Failed',
              'AvailabilityZoneIds': [
                  'string',
              ],
              'AvailabilityZones': [
                  'string',
              ],
              'AcceptanceRequired': True|False,
              'ManagesVpcEndpoints': True|False,
              'NetworkLoadBalancerArns': [
                  'string',
              ],
              'GatewayLoadBalancerArns': [
                  'string',
              ],
              'SupportedIpAddressTypes': [
                  'ipv4'|'ipv6',
              ],
              'BaseEndpointDnsNames': [
                  'string',
              ],
              'PrivateDnsName': 'string',
              'PrivateDnsNameConfiguration': {
                  'State': 'pendingVerification'|'verified'|'failed',
                  'Type': 'string',
                  'Value': 'string',
                  'Name': 'string'
              },
              'PayerResponsibility': 'ServiceOwner',
              'Tags': [
                  {
                      'Key': 'string',
                      'Value': 'string'
                  },
              ],
              'SupportedRegions': [
                  {
                      'Region': 'string',
                      'ServiceState': 'string'
                  },
              ],
              'RemoteAccessEnabled': True|False
          },
          'ClientToken': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **ServiceConfiguration** *(dict) --* 

        Information about the service configuration.

        
        

        - **ServiceType** *(list) --* 

          The type of service.

          
          

          - *(dict) --* 

            Describes the type of service for a VPC endpoint.

            
            

            - **ServiceType** *(string) --* 

              The type of service.

              
        
      
        

        - **ServiceId** *(string) --* 

          The ID of the service.

          
        

        - **ServiceName** *(string) --* 

          The name of the service.

          
        

        - **ServiceState** *(string) --* 

          The service state.

          
        

        - **AvailabilityZoneIds** *(list) --* 

          The IDs of the Availability Zones in which the service is available.

           

          Either ``AvailabilityZone`` or ``AvailabilityZoneId`` can be specified, but not both

          
          

          - *(string) --* 
      
        

        - **AvailabilityZones** *(list) --* 

          The Availability Zones in which the service is available.

           

          Either ``AvailabilityZone`` or ``AvailabilityZoneId`` can be specified, but not both

          
          

          - *(string) --* 
      
        

        - **AcceptanceRequired** *(boolean) --* 

          Indicates whether requests from other Amazon Web Services accounts to create an endpoint to the service must first be accepted.

          
        

        - **ManagesVpcEndpoints** *(boolean) --* 

          Indicates whether the service manages its VPC endpoints. Management of the service VPC endpoints using the VPC endpoint API is restricted.

          
        

        - **NetworkLoadBalancerArns** *(list) --* 

          The Amazon Resource Names (ARNs) of the Network Load Balancers for the service.

          
          

          - *(string) --* 
      
        

        - **GatewayLoadBalancerArns** *(list) --* 

          The Amazon Resource Names (ARNs) of the Gateway Load Balancers for the service.

          
          

          - *(string) --* 
      
        

        - **SupportedIpAddressTypes** *(list) --* 

          The supported IP address types.

          
          

          - *(string) --* 
      
        

        - **BaseEndpointDnsNames** *(list) --* 

          The DNS names for the service.

          
          

          - *(string) --* 
      
        

        - **PrivateDnsName** *(string) --* 

          The private DNS name for the service.

          
        

        - **PrivateDnsNameConfiguration** *(dict) --* 

          Information about the endpoint service private DNS name configuration.

          
          

          - **State** *(string) --* 

            The verification state of the VPC endpoint service.

             

            Consumers of the endpoint service can use the private name only when the state is ``verified``.

            
          

          - **Type** *(string) --* 

            The endpoint service verification type, for example TXT.

            
          

          - **Value** *(string) --* 

            The value the service provider adds to the private DNS name domain record before verification.

            
          

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

            The name of the record subdomain the service provider needs to create. The service provider adds the ``value`` text to the ``name``.

            
      
        

        - **PayerResponsibility** *(string) --* 

          The payer responsibility.

          
        

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

          The tags assigned to the service.

          
          

          - *(dict) --* 

            Describes a tag.

            
            

            - **Key** *(string) --* 

              The key of the tag.

               

              Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode characters. May not begin with ``aws:``.

              
            

            - **Value** *(string) --* 

              The value of the tag.

               

              Constraints: Tag values are case-sensitive and accept a maximum of 256 Unicode characters.

              
        
      
        

        - **SupportedRegions** *(list) --* 

          The supported Regions.

          
          

          - *(dict) --* 

            Describes a supported Region.

            
            

            - **Region** *(string) --* 

              The Region code.

              
            

            - **ServiceState** *(string) --* 

              The service state. The possible values are ``Pending``, ``Available``, ``Deleting``, ``Deleted``, ``Failed``, and ``Closed``.

              
        
      
        

        - **RemoteAccessEnabled** *(boolean) --* 

          Indicates whether consumers can access the service from a Region other than the Region where the service is hosted.

          
    
      

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

        Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

        
  