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

*************************************
update_field_level_encryption_profile
*************************************



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

  

  Update a field-level encryption profile.

  

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


  **Request Syntax**
  ::

    response = client.update_field_level_encryption_profile(
        FieldLevelEncryptionProfileConfig={
            'Name': 'string',
            'CallerReference': 'string',
            'Comment': 'string',
            'EncryptionEntities': {
                'Quantity': 123,
                'Items': [
                    {
                        'PublicKeyId': 'string',
                        'ProviderId': 'string',
                        'FieldPatterns': {
                            'Quantity': 123,
                            'Items': [
                                'string',
                            ]
                        }
                    },
                ]
            }
        },
        Id='string',
        IfMatch='string'
    )
    
  :type FieldLevelEncryptionProfileConfig: dict
  :param FieldLevelEncryptionProfileConfig: **[REQUIRED]** 

    Request to update a field-level encryption profile.

    

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

      Profile name for the field-level encryption profile.

      

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

      A unique number that ensures that the request can't be replayed.

      

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

      An optional comment for the field-level encryption profile. The comment cannot be longer than 128 characters.

      

    
    - **EncryptionEntities** *(dict) --* **[REQUIRED]** 

      A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.

      

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

        Number of field pattern items in a field-level encryption content type-profile mapping.

        

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

        An array of field patterns in a field-level encryption content type-profile mapping.

        

      
        - *(dict) --* 

          Complex data type for field-level encryption profiles that includes the encryption key and field pattern specifications.

          

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

            The public key associated with a set of field-level encryption patterns, to be used when encrypting the fields that match the patterns.

            

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

            The provider associated with the public key being used for encryption. This value must also be provided with the private key for applications to be able to decrypt data.

            

          
          - **FieldPatterns** *(dict) --* **[REQUIRED]** 

            Field patterns in a field-level encryption content type profile specify the fields that you want to be encrypted. You can provide the full field name, or any beginning characters followed by a wildcard (*). You can't overlap field patterns. For example, you can't have both ABC* and AB*. Note that field patterns are case-sensitive.

            

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

              The number of field-level encryption field patterns.

              

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

              An array of the field-level encryption field patterns.

              

            
              - *(string) --* 

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

    The ID of the field-level encryption profile request.

    

  
  :type IfMatch: string
  :param IfMatch: 

    The value of the ``ETag`` header that you received when retrieving the profile identity to update. For example: ``E2QWRUHAPOMQZL``.

    

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

    
    ::

      {
          'FieldLevelEncryptionProfile': {
              'Id': 'string',
              'LastModifiedTime': datetime(2015, 1, 1),
              'FieldLevelEncryptionProfileConfig': {
                  'Name': 'string',
                  'CallerReference': 'string',
                  'Comment': 'string',
                  'EncryptionEntities': {
                      'Quantity': 123,
                      'Items': [
                          {
                              'PublicKeyId': 'string',
                              'ProviderId': 'string',
                              'FieldPatterns': {
                                  'Quantity': 123,
                                  'Items': [
                                      'string',
                                  ]
                              }
                          },
                      ]
                  }
              }
          },
          'ETag': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **FieldLevelEncryptionProfile** *(dict) --* 

        Return the results of updating the profile.

        
        

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

          The ID for a field-level encryption profile configuration which includes a set of profiles that specify certain selected data fields to be encrypted by specific public keys.

          
        

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

          The last time the field-level encryption profile was updated.

          
        

        - **FieldLevelEncryptionProfileConfig** *(dict) --* 

          A complex data type that includes the profile name and the encryption entities for the field-level encryption profile.

          
          

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

            Profile name for the field-level encryption profile.

            
          

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

            A unique number that ensures that the request can't be replayed.

            
          

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

            An optional comment for the field-level encryption profile. The comment cannot be longer than 128 characters.

            
          

          - **EncryptionEntities** *(dict) --* 

            A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.

            
            

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

              Number of field pattern items in a field-level encryption content type-profile mapping.

              
            

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

              An array of field patterns in a field-level encryption content type-profile mapping.

              
              

              - *(dict) --* 

                Complex data type for field-level encryption profiles that includes the encryption key and field pattern specifications.

                
                

                - **PublicKeyId** *(string) --* 

                  The public key associated with a set of field-level encryption patterns, to be used when encrypting the fields that match the patterns.

                  
                

                - **ProviderId** *(string) --* 

                  The provider associated with the public key being used for encryption. This value must also be provided with the private key for applications to be able to decrypt data.

                  
                

                - **FieldPatterns** *(dict) --* 

                  Field patterns in a field-level encryption content type profile specify the fields that you want to be encrypted. You can provide the full field name, or any beginning characters followed by a wildcard (*). You can't overlap field patterns. For example, you can't have both ABC* and AB*. Note that field patterns are case-sensitive.

                  
                  

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

                    The number of field-level encryption field patterns.

                    
                  

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

                    An array of the field-level encryption field patterns.

                    
                    

                    - *(string) --* 
                
              
            
          
        
      
    
      

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

        The result of the field-level encryption profile request.

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

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

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

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

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

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

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

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

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

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

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

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

  