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

*****************
create_public_key
*****************



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

  

  Uploads a public key to CloudFront that you can use with `signed URLs and signed cookies <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html>`__, or with `field-level encryption <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html>`__.

  

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


  **Request Syntax**
  ::

    response = client.create_public_key(
        PublicKeyConfig={
            'CallerReference': 'string',
            'Name': 'string',
            'EncodedKey': 'string',
            'Comment': 'string'
        }
    )
    
  :type PublicKeyConfig: dict
  :param PublicKeyConfig: **[REQUIRED]** 

    A CloudFront public key configuration.

    

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

      A string included in the request to help make sure that the request can't be replayed.

      

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

      A name to help identify the public key.

      

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

      The public key that you can use with `signed URLs and signed cookies <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html>`__, or with `field-level encryption <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html>`__.

      

    
    - **Comment** *(string) --* 

      A comment to describe the public key. The comment cannot be longer than 128 characters.

      

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

    
    ::

      {
          'PublicKey': {
              'Id': 'string',
              'CreatedTime': datetime(2015, 1, 1),
              'PublicKeyConfig': {
                  'CallerReference': 'string',
                  'Name': 'string',
                  'EncodedKey': 'string',
                  'Comment': 'string'
              }
          },
          'Location': 'string',
          'ETag': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **PublicKey** *(dict) --* 

        The public key.

        
        

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

          The identifier of the public key.

          
        

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

          The date and time when the public key was uploaded.

          
        

        - **PublicKeyConfig** *(dict) --* 

          Configuration information about a public key that you can use with `signed URLs and signed cookies <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html>`__, or with `field-level encryption <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html>`__.

          
          

          - **CallerReference** *(string) --* 

            A string included in the request to help make sure that the request can't be replayed.

            
          

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

            A name to help identify the public key.

            
          

          - **EncodedKey** *(string) --* 

            The public key that you can use with `signed URLs and signed cookies <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html>`__, or with `field-level encryption <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html>`__.

            
          

          - **Comment** *(string) --* 

            A comment to describe the public key. The comment cannot be longer than 128 characters.

            
      
    
      

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

        The URL of the public key.

        
      

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

        The identifier for this version of the public key.

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

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

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

  