func (c *ECR) CompleteLayerUpload(input *CompleteLayerUploadInput) (*CompleteLayerUploadOutput, error) {
	req, out := c.CompleteLayerUploadRequest(input)
	err := req.Send()
	return out, err
}
CompleteLayerUpload API operation for Amazon EC2 Container Registry.

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

This operation is used by the Amazon ECR proxy, and it is not intended for
general use by customers. Use the docker CLI to pull, tag, and push images.

Returns awserr.Error for service API and SDK errors. Use runtime type assertions
with awserr.Error's Code and Message methods to get detailed information about
the error.

See the AWS API reference guide for Amazon EC2 Container Registry's
API operation CompleteLayerUpload for usage and error information.

Returned Error Codes:
* ServerException
These errors are usually caused by a server-side issue.

* InvalidParameterException
The specified parameter is invalid. Review the available parameters for the
API request.

* RepositoryNotFoundException
The specified repository could not be found. Check the spelling of the specified
repository and ensure that you are performing operations on the correct registry.

* UploadNotFoundException
The upload could not be found, or the specified upload id is not valid for
this repository.

* InvalidLayerException
The layer digest calculation performed by Amazon ECR upon receipt of the
image layer does not match the digest specified.

* LayerPartTooSmallException
Layer parts must be at least 5 MiB in size.

* LayerAlreadyExistsException
The image layer already exists in the associated repository.

* EmptyUploadException
The specified layer upload does not contain any layer parts.
package ecr
import (
	"time"
	"github.com/aws/aws-sdk-go/aws/awsutil"
	"github.com/aws/aws-sdk-go/aws/request"
)
const opBatchCheckLayerAvailability = "BatchCheckLayerAvailability"
func (c *ECR) BatchCheckLayerAvailabilityRequest(input *BatchCheckLayerAvailabilityInput) (req *request.Request, output *BatchCheckLayerAvailabilityOutput) {
	op := &request.Operation{
		Name:       opBatchCheckLayerAvailability,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}
	if input == nil {
		input = &BatchCheckLayerAvailabilityInput{}
	}
	req = c.newRequest(op, input, output)
	output = &BatchCheckLayerAvailabilityOutput{}
	req.Data = output
	return
}
func (c *ECR) BatchCheckLayerAvailability(input *BatchCheckLayerAvailabilityInput) (*BatchCheckLayerAvailabilityOutput, error) {
	req, out := c.BatchCheckLayerAvailabilityRequest(input)
	err := req.Send()
	return out, err
}
const opBatchDeleteImage = "BatchDeleteImage"
func (c *ECR) BatchDeleteImageRequest(input *BatchDeleteImageInput) (req *request.Request, output *BatchDeleteImageOutput) {
	op := &request.Operation{
		Name:       opBatchDeleteImage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}
	if input == nil {
		input = &BatchDeleteImageInput{}
	}
	req = c.newRequest(op, input, output)
	output = &BatchDeleteImageOutput{}
	req.Data = output
	return
}
func (c *ECR) BatchDeleteImage(input *BatchDeleteImageInput) (*BatchDeleteImageOutput, error) {
	req, out := c.BatchDeleteImageRequest(input)
	err := req.Send()
	return out, err
}
const opBatchGetImage = "BatchGetImage"
func (c *ECR) BatchGetImageRequest(input *BatchGetImageInput) (req *request.Request, output *BatchGetImageOutput) {
	op := &request.Operation{
		Name:       opBatchGetImage,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}
	if input == nil {
		input = &BatchGetImageInput{}
	}
	req = c.newRequest(op, input, output)
	output = &BatchGetImageOutput{}
	req.Data = output
	return
}
func (c *ECR) BatchGetImage(input *BatchGetImageInput) (*BatchGetImageOutput, error) {
	req, out := c.BatchGetImageRequest(input)
	err := req.Send()
	return out, err
}
const opCompleteLayerUpload = "CompleteLayerUpload"
func (c *ECR) CompleteLayerUploadRequest(input *CompleteLayerUploadInput) (req *request.Request, output *CompleteLayerUploadOutput) {
	op := &request.Operation{
		Name:       opCompleteLayerUpload,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}
	if input == nil {
		input = &CompleteLayerUploadInput{}
	}
	req = c.newRequest(op, input, output)
	output = &CompleteLayerUploadOutput{}
	req.Data = output
	return
}