:doc:`ECR <../../ecr>` / Client / complete_layer_upload

*********************
complete_layer_upload
*********************



.. py:method:: ECR.Client.complete_layer_upload(**kwargs)

  

  Informs Amazon ECR that the image layer upload has completed for a specified registry, repository name, and upload ID. You can optionally provide a ``sha256`` digest of the image layer for data validation purposes.

   

  When an image is pushed, the CompleteLayerUpload API is called once per each new image layer to verify that the upload has completed.

   

  .. note::

    

    This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the ``docker`` CLI to pull, tag, and push images.

    

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CompleteLayerUpload>`_  


  **Request Syntax**
  ::

    response = client.complete_layer_upload(
        registryId='string',
        repositoryName='string',
        uploadId='string',
        layerDigests=[
            'string',
        ]
    )
    
  :type registryId: string
  :param registryId: 

    The Amazon Web Services account ID associated with the registry to which to upload layers. If you do not specify a registry, the default registry is assumed.

    

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

    The name of the repository to associate with the image layer.

    

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

    The upload ID from a previous  InitiateLayerUpload operation to associate with the image layer.

    

  
  :type layerDigests: list
  :param layerDigests: **[REQUIRED]** 

    The ``sha256`` digest of the image layer.

    

  
    - *(string) --* 

    

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

    
    ::

      {
          'registryId': 'string',
          'repositoryName': 'string',
          'uploadId': 'string',
          'layerDigest': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **registryId** *(string) --* 

        The registry ID associated with the request.

        
      

      - **repositoryName** *(string) --* 

        The repository name associated with the request.

        
      

      - **uploadId** *(string) --* 

        The upload ID associated with the layer.

        
      

      - **layerDigest** *(string) --* 

        The ``sha256`` digest of the image layer.

        
  
  **Exceptions**
  
  *   :py:class:`ECR.Client.exceptions.ServerException`

  
  *   :py:class:`ECR.Client.exceptions.InvalidParameterException`

  
  *   :py:class:`ECR.Client.exceptions.RepositoryNotFoundException`

  
  *   :py:class:`ECR.Client.exceptions.UploadNotFoundException`

  
  *   :py:class:`ECR.Client.exceptions.InvalidLayerException`

  
  *   :py:class:`ECR.Client.exceptions.LayerPartTooSmallException`

  
  *   :py:class:`ECR.Client.exceptions.LayerAlreadyExistsException`

  
  *   :py:class:`ECR.Client.exceptions.EmptyUploadException`

  
  *   :py:class:`ECR.Client.exceptions.KmsException`

  