:doc:`CloudFront <../../cloudfront>` / Client / create_vpc_origin

*****************
create_vpc_origin
*****************



.. py:method:: CloudFront.Client.create_vpc_origin(**kwargs)

  

  Create an Amazon CloudFront VPC origin.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CreateVpcOrigin>`_  


  **Request Syntax**
  ::

    response = client.create_vpc_origin(
        VpcOriginEndpointConfig={
            'Name': 'string',
            'Arn': 'string',
            'HTTPPort': 123,
            'HTTPSPort': 123,
            'OriginProtocolPolicy': 'http-only'|'match-viewer'|'https-only',
            'OriginSslProtocols': {
                'Quantity': 123,
                'Items': [
                    'SSLv3'|'TLSv1'|'TLSv1.1'|'TLSv1.2',
                ]
            }
        },
        Tags={
            'Items': [
                {
                    'Key': 'string',
                    'Value': 'string'
                },
            ]
        }
    )
    
  :type VpcOriginEndpointConfig: dict
  :param VpcOriginEndpointConfig: **[REQUIRED]** 

    The VPC origin endpoint configuration.

    

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

      The name of the CloudFront VPC origin endpoint configuration.

      

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

      The ARN of the CloudFront VPC origin endpoint configuration.

      

    
    - **HTTPPort** *(integer) --* **[REQUIRED]** 

      The HTTP port for the CloudFront VPC origin endpoint configuration. The default value is ``80``.

      

    
    - **HTTPSPort** *(integer) --* **[REQUIRED]** 

      The HTTPS port of the CloudFront VPC origin endpoint configuration. The default value is ``443``.

      

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

      The origin protocol policy for the CloudFront VPC origin endpoint configuration.

      

    
    - **OriginSslProtocols** *(dict) --* 

      A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin.

      

    
      - **Quantity** *(integer) --* **[REQUIRED]** 

        The number of SSL/TLS protocols that you want to allow CloudFront to use when establishing an HTTPS connection with this origin.

        

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

        A list that contains allowed SSL/TLS protocols for this distribution.

        

      
        - *(string) --* 

        
    
    
  
  :type Tags: dict
  :param Tags: 

    A complex type that contains zero or more ``Tag`` elements.

    

  
    - **Items** *(list) --* 

      A complex type that contains ``Tag`` elements.

      

    
      - *(dict) --* 

        A complex type that contains ``Tag`` key and ``Tag`` value.

        

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

          A string that contains ``Tag`` key.

           

          The string length should be between 1 and 128 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``.

          

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

          A string that contains an optional ``Tag`` value.

           

          The string length should be between 0 and 256 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``.

          

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

    
    ::

      {
          'VpcOrigin': {
              'Id': 'string',
              'Arn': 'string',
              'AccountId': 'string',
              'Status': 'string',
              'CreatedTime': datetime(2015, 1, 1),
              'LastModifiedTime': datetime(2015, 1, 1),
              'VpcOriginEndpointConfig': {
                  'Name': 'string',
                  'Arn': 'string',
                  'HTTPPort': 123,
                  'HTTPSPort': 123,
                  'OriginProtocolPolicy': 'http-only'|'match-viewer'|'https-only',
                  'OriginSslProtocols': {
                      'Quantity': 123,
                      'Items': [
                          'SSLv3'|'TLSv1'|'TLSv1.1'|'TLSv1.2',
                      ]
                  }
              }
          },
          'Location': 'string',
          'ETag': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **VpcOrigin** *(dict) --* 

        The VPC origin.

        
        

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

          The VPC origin ID.

          
        

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

          The VPC origin ARN.

          
        

        - **AccountId** *(string) --* 

          The account ID of the Amazon Web Services account that owns the VPC origin.

          
        

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

          The VPC origin status.

          
        

        - **CreatedTime** *(datetime) --* 

          The VPC origin created time.

          
        

        - **LastModifiedTime** *(datetime) --* 

          The VPC origin last modified time.

          
        

        - **VpcOriginEndpointConfig** *(dict) --* 

          The VPC origin endpoint configuration.

          
          

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

            The name of the CloudFront VPC origin endpoint configuration.

            
          

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

            The ARN of the CloudFront VPC origin endpoint configuration.

            
          

          - **HTTPPort** *(integer) --* 

            The HTTP port for the CloudFront VPC origin endpoint configuration. The default value is ``80``.

            
          

          - **HTTPSPort** *(integer) --* 

            The HTTPS port of the CloudFront VPC origin endpoint configuration. The default value is ``443``.

            
          

          - **OriginProtocolPolicy** *(string) --* 

            The origin protocol policy for the CloudFront VPC origin endpoint configuration.

            
          

          - **OriginSslProtocols** *(dict) --* 

            A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin.

            
            

            - **Quantity** *(integer) --* 

              The number of SSL/TLS protocols that you want to allow CloudFront to use when establishing an HTTPS connection with this origin.

              
            

            - **Items** *(list) --* 

              A list that contains allowed SSL/TLS protocols for this distribution.

              
              

              - *(string) --* 
          
        
      
    
      

      - **Location** *(string) --* 

        The VPC origin location.

        
      

      - **ETag** *(string) --* 

        The VPC origin ETag.

        
  
  **Exceptions**
  
  *   :py:class:`CloudFront.Client.exceptions.AccessDenied`

  
  *   :py:class:`CloudFront.Client.exceptions.UnsupportedOperation`

  
  *   :py:class:`CloudFront.Client.exceptions.EntityAlreadyExists`

  
  *   :py:class:`CloudFront.Client.exceptions.InconsistentQuantities`

  
  *   :py:class:`CloudFront.Client.exceptions.InvalidTagging`

  
  *   :py:class:`CloudFront.Client.exceptions.EntityLimitExceeded`

  
  *   :py:class:`CloudFront.Client.exceptions.InvalidArgument`

  