/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace ECR { /** * Amazon Elastic Container Registry

Amazon Elastic * Container Registry (Amazon ECR) is a managed container image registry service. * Customers can use the familiar Docker CLI, or their preferred client, to push, * pull, and manage images. Amazon ECR provides a secure, scalable, and reliable * registry for your Docker or Open Container Initiative (OCI) images. Amazon ECR * supports private repositories with resource-based permissions using IAM so that * specific users or Amazon EC2 instances can access repositories and images.

*

Amazon ECR has service endpoints in each supported Region. For more * information, see Amazon ECR * endpoints in the Amazon Web Services General Reference.

*/ class AWS_ECR_API ECRClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef ECRClientConfiguration ClientConfigurationType; typedef ECREndpointProvider EndpointProviderType; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ECRClient(const Aws::ECR::ECRClientConfiguration& clientConfiguration = Aws::ECR::ECRClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ECRClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::ECR::ECRClientConfiguration& clientConfiguration = Aws::ECR::ECRClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ ECRClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::ECR::ECRClientConfiguration& clientConfiguration = Aws::ECR::ECRClientConfiguration()); /* Legacy constructors due deprecation */ /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ECRClient(const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ECRClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ ECRClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~ECRClient(); /** *

Checks the availability of one or more image layers in a repository.

*

When an image is pushed to a repository, each image layer is checked to * verify if it has been uploaded before. If it has been uploaded, then the image * layer is skipped.

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 Reference

*/ virtual Model::BatchCheckLayerAvailabilityOutcome BatchCheckLayerAvailability(const Model::BatchCheckLayerAvailabilityRequest& request) const; /** * A Callable wrapper for BatchCheckLayerAvailability that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchCheckLayerAvailabilityOutcomeCallable BatchCheckLayerAvailabilityCallable(const BatchCheckLayerAvailabilityRequestT& request) const { return SubmitCallable(&ECRClient::BatchCheckLayerAvailability, request); } /** * An Async wrapper for BatchCheckLayerAvailability that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchCheckLayerAvailabilityAsync(const BatchCheckLayerAvailabilityRequestT& request, const BatchCheckLayerAvailabilityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::BatchCheckLayerAvailability, request, handler, context); } /** *

Deletes a list of specified images within a repository. Images are specified * with either an imageTag or imageDigest.

You can * remove a tag from an image by specifying the image's tag in your request. When * you remove the last tag from an image, the image is deleted from your * repository.

You can completely delete an image (and all of its tags) by * specifying the image's digest in your request.

See Also:

AWS * API Reference

*/ virtual Model::BatchDeleteImageOutcome BatchDeleteImage(const Model::BatchDeleteImageRequest& request) const; /** * A Callable wrapper for BatchDeleteImage that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchDeleteImageOutcomeCallable BatchDeleteImageCallable(const BatchDeleteImageRequestT& request) const { return SubmitCallable(&ECRClient::BatchDeleteImage, request); } /** * An Async wrapper for BatchDeleteImage that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchDeleteImageAsync(const BatchDeleteImageRequestT& request, const BatchDeleteImageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::BatchDeleteImage, request, handler, context); } /** *

Gets detailed information for an image. Images are specified with either an * imageTag or imageDigest.

When an image is * pulled, the BatchGetImage API is called once to retrieve the image * manifest.

See Also:

AWS * API Reference

*/ virtual Model::BatchGetImageOutcome BatchGetImage(const Model::BatchGetImageRequest& request) const; /** * A Callable wrapper for BatchGetImage that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchGetImageOutcomeCallable BatchGetImageCallable(const BatchGetImageRequestT& request) const { return SubmitCallable(&ECRClient::BatchGetImage, request); } /** * An Async wrapper for BatchGetImage that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchGetImageAsync(const BatchGetImageRequestT& request, const BatchGetImageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::BatchGetImage, request, handler, context); } /** *

Gets the scanning configuration for one or more repositories.

See * Also:

AWS * API Reference

*/ virtual Model::BatchGetRepositoryScanningConfigurationOutcome BatchGetRepositoryScanningConfiguration(const Model::BatchGetRepositoryScanningConfigurationRequest& request) const; /** * A Callable wrapper for BatchGetRepositoryScanningConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchGetRepositoryScanningConfigurationOutcomeCallable BatchGetRepositoryScanningConfigurationCallable(const BatchGetRepositoryScanningConfigurationRequestT& request) const { return SubmitCallable(&ECRClient::BatchGetRepositoryScanningConfiguration, request); } /** * An Async wrapper for BatchGetRepositoryScanningConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchGetRepositoryScanningConfigurationAsync(const BatchGetRepositoryScanningConfigurationRequestT& request, const BatchGetRepositoryScanningConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::BatchGetRepositoryScanningConfiguration, request, handler, context); } /** *

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.

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 Reference

*/ virtual Model::CompleteLayerUploadOutcome CompleteLayerUpload(const Model::CompleteLayerUploadRequest& request) const; /** * A Callable wrapper for CompleteLayerUpload that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CompleteLayerUploadOutcomeCallable CompleteLayerUploadCallable(const CompleteLayerUploadRequestT& request) const { return SubmitCallable(&ECRClient::CompleteLayerUpload, request); } /** * An Async wrapper for CompleteLayerUpload that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CompleteLayerUploadAsync(const CompleteLayerUploadRequestT& request, const CompleteLayerUploadResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::CompleteLayerUpload, request, handler, context); } /** *

Creates a pull through cache rule. A pull through cache rule provides a way * to cache images from an external public registry in your Amazon ECR private * registry.

See Also:

AWS * API Reference

*/ virtual Model::CreatePullThroughCacheRuleOutcome CreatePullThroughCacheRule(const Model::CreatePullThroughCacheRuleRequest& request) const; /** * A Callable wrapper for CreatePullThroughCacheRule that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreatePullThroughCacheRuleOutcomeCallable CreatePullThroughCacheRuleCallable(const CreatePullThroughCacheRuleRequestT& request) const { return SubmitCallable(&ECRClient::CreatePullThroughCacheRule, request); } /** * An Async wrapper for CreatePullThroughCacheRule that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreatePullThroughCacheRuleAsync(const CreatePullThroughCacheRuleRequestT& request, const CreatePullThroughCacheRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::CreatePullThroughCacheRule, request, handler, context); } /** *

Creates a repository. For more information, see Amazon * ECR repositories in the Amazon Elastic Container Registry User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::CreateRepositoryOutcome CreateRepository(const Model::CreateRepositoryRequest& request) const; /** * A Callable wrapper for CreateRepository that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateRepositoryOutcomeCallable CreateRepositoryCallable(const CreateRepositoryRequestT& request) const { return SubmitCallable(&ECRClient::CreateRepository, request); } /** * An Async wrapper for CreateRepository that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateRepositoryAsync(const CreateRepositoryRequestT& request, const CreateRepositoryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::CreateRepository, request, handler, context); } /** *

Deletes the lifecycle policy associated with the specified * repository.

See Also:

AWS * API Reference

*/ virtual Model::DeleteLifecyclePolicyOutcome DeleteLifecyclePolicy(const Model::DeleteLifecyclePolicyRequest& request) const; /** * A Callable wrapper for DeleteLifecyclePolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteLifecyclePolicyOutcomeCallable DeleteLifecyclePolicyCallable(const DeleteLifecyclePolicyRequestT& request) const { return SubmitCallable(&ECRClient::DeleteLifecyclePolicy, request); } /** * An Async wrapper for DeleteLifecyclePolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteLifecyclePolicyAsync(const DeleteLifecyclePolicyRequestT& request, const DeleteLifecyclePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::DeleteLifecyclePolicy, request, handler, context); } /** *

Deletes a pull through cache rule.

See Also:

AWS * API Reference

*/ virtual Model::DeletePullThroughCacheRuleOutcome DeletePullThroughCacheRule(const Model::DeletePullThroughCacheRuleRequest& request) const; /** * A Callable wrapper for DeletePullThroughCacheRule that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeletePullThroughCacheRuleOutcomeCallable DeletePullThroughCacheRuleCallable(const DeletePullThroughCacheRuleRequestT& request) const { return SubmitCallable(&ECRClient::DeletePullThroughCacheRule, request); } /** * An Async wrapper for DeletePullThroughCacheRule that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeletePullThroughCacheRuleAsync(const DeletePullThroughCacheRuleRequestT& request, const DeletePullThroughCacheRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::DeletePullThroughCacheRule, request, handler, context); } /** *

Deletes the registry permissions policy.

See Also:

AWS * API Reference

*/ virtual Model::DeleteRegistryPolicyOutcome DeleteRegistryPolicy(const Model::DeleteRegistryPolicyRequest& request) const; /** * A Callable wrapper for DeleteRegistryPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteRegistryPolicyOutcomeCallable DeleteRegistryPolicyCallable(const DeleteRegistryPolicyRequestT& request) const { return SubmitCallable(&ECRClient::DeleteRegistryPolicy, request); } /** * An Async wrapper for DeleteRegistryPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteRegistryPolicyAsync(const DeleteRegistryPolicyRequestT& request, const DeleteRegistryPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::DeleteRegistryPolicy, request, handler, context); } /** *

Deletes a repository. If the repository contains images, you must either * delete all images in the repository or use the force option to * delete the repository.

See Also:

AWS * API Reference

*/ virtual Model::DeleteRepositoryOutcome DeleteRepository(const Model::DeleteRepositoryRequest& request) const; /** * A Callable wrapper for DeleteRepository that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteRepositoryOutcomeCallable DeleteRepositoryCallable(const DeleteRepositoryRequestT& request) const { return SubmitCallable(&ECRClient::DeleteRepository, request); } /** * An Async wrapper for DeleteRepository that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteRepositoryAsync(const DeleteRepositoryRequestT& request, const DeleteRepositoryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::DeleteRepository, request, handler, context); } /** *

Deletes the repository policy associated with the specified * repository.

See Also:

AWS * API Reference

*/ virtual Model::DeleteRepositoryPolicyOutcome DeleteRepositoryPolicy(const Model::DeleteRepositoryPolicyRequest& request) const; /** * A Callable wrapper for DeleteRepositoryPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteRepositoryPolicyOutcomeCallable DeleteRepositoryPolicyCallable(const DeleteRepositoryPolicyRequestT& request) const { return SubmitCallable(&ECRClient::DeleteRepositoryPolicy, request); } /** * An Async wrapper for DeleteRepositoryPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteRepositoryPolicyAsync(const DeleteRepositoryPolicyRequestT& request, const DeleteRepositoryPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::DeleteRepositoryPolicy, request, handler, context); } /** *

Returns the replication status for a specified image.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeImageReplicationStatusOutcome DescribeImageReplicationStatus(const Model::DescribeImageReplicationStatusRequest& request) const; /** * A Callable wrapper for DescribeImageReplicationStatus that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeImageReplicationStatusOutcomeCallable DescribeImageReplicationStatusCallable(const DescribeImageReplicationStatusRequestT& request) const { return SubmitCallable(&ECRClient::DescribeImageReplicationStatus, request); } /** * An Async wrapper for DescribeImageReplicationStatus that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeImageReplicationStatusAsync(const DescribeImageReplicationStatusRequestT& request, const DescribeImageReplicationStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::DescribeImageReplicationStatus, request, handler, context); } /** *

Returns the scan findings for the specified image.

See Also:

* AWS * API Reference

*/ virtual Model::DescribeImageScanFindingsOutcome DescribeImageScanFindings(const Model::DescribeImageScanFindingsRequest& request) const; /** * A Callable wrapper for DescribeImageScanFindings that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeImageScanFindingsOutcomeCallable DescribeImageScanFindingsCallable(const DescribeImageScanFindingsRequestT& request) const { return SubmitCallable(&ECRClient::DescribeImageScanFindings, request); } /** * An Async wrapper for DescribeImageScanFindings that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeImageScanFindingsAsync(const DescribeImageScanFindingsRequestT& request, const DescribeImageScanFindingsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::DescribeImageScanFindings, request, handler, context); } /** *

Returns metadata about the images in a repository.

Beginning * with Docker version 1.9, the Docker client compresses image layers before * pushing them to a V2 Docker registry. The output of the docker * images command shows the uncompressed image size, so it may return a * larger image size than the image sizes returned by DescribeImages.

*

See Also:

AWS * API Reference

*/ virtual Model::DescribeImagesOutcome DescribeImages(const Model::DescribeImagesRequest& request) const; /** * A Callable wrapper for DescribeImages that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeImagesOutcomeCallable DescribeImagesCallable(const DescribeImagesRequestT& request) const { return SubmitCallable(&ECRClient::DescribeImages, request); } /** * An Async wrapper for DescribeImages that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeImagesAsync(const DescribeImagesRequestT& request, const DescribeImagesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::DescribeImages, request, handler, context); } /** *

Returns the pull through cache rules for a registry.

See Also:

* AWS * API Reference

*/ virtual Model::DescribePullThroughCacheRulesOutcome DescribePullThroughCacheRules(const Model::DescribePullThroughCacheRulesRequest& request) const; /** * A Callable wrapper for DescribePullThroughCacheRules that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribePullThroughCacheRulesOutcomeCallable DescribePullThroughCacheRulesCallable(const DescribePullThroughCacheRulesRequestT& request) const { return SubmitCallable(&ECRClient::DescribePullThroughCacheRules, request); } /** * An Async wrapper for DescribePullThroughCacheRules that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribePullThroughCacheRulesAsync(const DescribePullThroughCacheRulesRequestT& request, const DescribePullThroughCacheRulesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::DescribePullThroughCacheRules, request, handler, context); } /** *

Describes the settings for a registry. The replication configuration for a * repository can be created or updated with the PutReplicationConfiguration * API action.

See Also:

AWS * API Reference

*/ virtual Model::DescribeRegistryOutcome DescribeRegistry(const Model::DescribeRegistryRequest& request) const; /** * A Callable wrapper for DescribeRegistry that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeRegistryOutcomeCallable DescribeRegistryCallable(const DescribeRegistryRequestT& request) const { return SubmitCallable(&ECRClient::DescribeRegistry, request); } /** * An Async wrapper for DescribeRegistry that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeRegistryAsync(const DescribeRegistryRequestT& request, const DescribeRegistryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::DescribeRegistry, request, handler, context); } /** *

Describes image repositories in a registry.

See Also:

AWS * API Reference

*/ virtual Model::DescribeRepositoriesOutcome DescribeRepositories(const Model::DescribeRepositoriesRequest& request) const; /** * A Callable wrapper for DescribeRepositories that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeRepositoriesOutcomeCallable DescribeRepositoriesCallable(const DescribeRepositoriesRequestT& request) const { return SubmitCallable(&ECRClient::DescribeRepositories, request); } /** * An Async wrapper for DescribeRepositories that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeRepositoriesAsync(const DescribeRepositoriesRequestT& request, const DescribeRepositoriesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::DescribeRepositories, request, handler, context); } /** *

Retrieves an authorization token. An authorization token represents your IAM * authentication credentials and can be used to access any Amazon ECR registry * that your IAM principal has access to. The authorization token is valid for 12 * hours.

The authorizationToken returned is a base64 encoded * string that can be decoded and used in a docker login command to * authenticate to a registry. The CLI offers an get-login-password * command that simplifies the login process. For more information, see Registry * authentication in the Amazon Elastic Container Registry User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::GetAuthorizationTokenOutcome GetAuthorizationToken(const Model::GetAuthorizationTokenRequest& request) const; /** * A Callable wrapper for GetAuthorizationToken that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetAuthorizationTokenOutcomeCallable GetAuthorizationTokenCallable(const GetAuthorizationTokenRequestT& request) const { return SubmitCallable(&ECRClient::GetAuthorizationToken, request); } /** * An Async wrapper for GetAuthorizationToken that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetAuthorizationTokenAsync(const GetAuthorizationTokenRequestT& request, const GetAuthorizationTokenResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::GetAuthorizationToken, request, handler, context); } /** *

Retrieves the pre-signed Amazon S3 download URL corresponding to an image * layer. You can only get URLs for image layers that are referenced in an * image.

When an image is pulled, the GetDownloadUrlForLayer API is called * once per image layer that is not already cached.

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 Reference

*/ virtual Model::GetDownloadUrlForLayerOutcome GetDownloadUrlForLayer(const Model::GetDownloadUrlForLayerRequest& request) const; /** * A Callable wrapper for GetDownloadUrlForLayer that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetDownloadUrlForLayerOutcomeCallable GetDownloadUrlForLayerCallable(const GetDownloadUrlForLayerRequestT& request) const { return SubmitCallable(&ECRClient::GetDownloadUrlForLayer, request); } /** * An Async wrapper for GetDownloadUrlForLayer that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetDownloadUrlForLayerAsync(const GetDownloadUrlForLayerRequestT& request, const GetDownloadUrlForLayerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::GetDownloadUrlForLayer, request, handler, context); } /** *

Retrieves the lifecycle policy for the specified repository.

See * Also:

AWS * API Reference

*/ virtual Model::GetLifecyclePolicyOutcome GetLifecyclePolicy(const Model::GetLifecyclePolicyRequest& request) const; /** * A Callable wrapper for GetLifecyclePolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetLifecyclePolicyOutcomeCallable GetLifecyclePolicyCallable(const GetLifecyclePolicyRequestT& request) const { return SubmitCallable(&ECRClient::GetLifecyclePolicy, request); } /** * An Async wrapper for GetLifecyclePolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetLifecyclePolicyAsync(const GetLifecyclePolicyRequestT& request, const GetLifecyclePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::GetLifecyclePolicy, request, handler, context); } /** *

Retrieves the results of the lifecycle policy preview request for the * specified repository.

See Also:

AWS * API Reference

*/ virtual Model::GetLifecyclePolicyPreviewOutcome GetLifecyclePolicyPreview(const Model::GetLifecyclePolicyPreviewRequest& request) const; /** * A Callable wrapper for GetLifecyclePolicyPreview that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetLifecyclePolicyPreviewOutcomeCallable GetLifecyclePolicyPreviewCallable(const GetLifecyclePolicyPreviewRequestT& request) const { return SubmitCallable(&ECRClient::GetLifecyclePolicyPreview, request); } /** * An Async wrapper for GetLifecyclePolicyPreview that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetLifecyclePolicyPreviewAsync(const GetLifecyclePolicyPreviewRequestT& request, const GetLifecyclePolicyPreviewResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::GetLifecyclePolicyPreview, request, handler, context); } /** *

Retrieves the permissions policy for a registry.

See Also:

* AWS * API Reference

*/ virtual Model::GetRegistryPolicyOutcome GetRegistryPolicy(const Model::GetRegistryPolicyRequest& request) const; /** * A Callable wrapper for GetRegistryPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetRegistryPolicyOutcomeCallable GetRegistryPolicyCallable(const GetRegistryPolicyRequestT& request) const { return SubmitCallable(&ECRClient::GetRegistryPolicy, request); } /** * An Async wrapper for GetRegistryPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetRegistryPolicyAsync(const GetRegistryPolicyRequestT& request, const GetRegistryPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::GetRegistryPolicy, request, handler, context); } /** *

Retrieves the scanning configuration for a registry.

See Also:

* AWS * API Reference

*/ virtual Model::GetRegistryScanningConfigurationOutcome GetRegistryScanningConfiguration(const Model::GetRegistryScanningConfigurationRequest& request) const; /** * A Callable wrapper for GetRegistryScanningConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetRegistryScanningConfigurationOutcomeCallable GetRegistryScanningConfigurationCallable(const GetRegistryScanningConfigurationRequestT& request) const { return SubmitCallable(&ECRClient::GetRegistryScanningConfiguration, request); } /** * An Async wrapper for GetRegistryScanningConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetRegistryScanningConfigurationAsync(const GetRegistryScanningConfigurationRequestT& request, const GetRegistryScanningConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::GetRegistryScanningConfiguration, request, handler, context); } /** *

Retrieves the repository policy for the specified repository.

See * Also:

AWS * API Reference

*/ virtual Model::GetRepositoryPolicyOutcome GetRepositoryPolicy(const Model::GetRepositoryPolicyRequest& request) const; /** * A Callable wrapper for GetRepositoryPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetRepositoryPolicyOutcomeCallable GetRepositoryPolicyCallable(const GetRepositoryPolicyRequestT& request) const { return SubmitCallable(&ECRClient::GetRepositoryPolicy, request); } /** * An Async wrapper for GetRepositoryPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetRepositoryPolicyAsync(const GetRepositoryPolicyRequestT& request, const GetRepositoryPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::GetRepositoryPolicy, request, handler, context); } /** *

Notifies Amazon ECR that you intend to upload an image layer.

When an * image is pushed, the InitiateLayerUpload API is called once per image layer that * has not already been uploaded. Whether or not an image layer has been uploaded * is determined by the BatchCheckLayerAvailability API action.

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 Reference

*/ virtual Model::InitiateLayerUploadOutcome InitiateLayerUpload(const Model::InitiateLayerUploadRequest& request) const; /** * A Callable wrapper for InitiateLayerUpload that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::InitiateLayerUploadOutcomeCallable InitiateLayerUploadCallable(const InitiateLayerUploadRequestT& request) const { return SubmitCallable(&ECRClient::InitiateLayerUpload, request); } /** * An Async wrapper for InitiateLayerUpload that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void InitiateLayerUploadAsync(const InitiateLayerUploadRequestT& request, const InitiateLayerUploadResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::InitiateLayerUpload, request, handler, context); } /** *

Lists all the image IDs for the specified repository.

You can filter * images based on whether or not they are tagged by using the * tagStatus filter and specifying either TAGGED, * UNTAGGED or ANY. For example, you can filter your * results to return only UNTAGGED images and then pipe that result to * a BatchDeleteImage operation to delete them. Or, you can filter your * results to return only TAGGED images to list all of the tags in * your repository.

See Also:

AWS API * Reference

*/ virtual Model::ListImagesOutcome ListImages(const Model::ListImagesRequest& request) const; /** * A Callable wrapper for ListImages that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListImagesOutcomeCallable ListImagesCallable(const ListImagesRequestT& request) const { return SubmitCallable(&ECRClient::ListImages, request); } /** * An Async wrapper for ListImages that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListImagesAsync(const ListImagesRequestT& request, const ListImagesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::ListImages, request, handler, context); } /** *

List the tags for an Amazon ECR resource.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&ECRClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::ListTagsForResource, request, handler, context); } /** *

Creates or updates the image manifest and tags associated with an image.

*

When an image is pushed and all new image layers have been uploaded, the * PutImage API is called once to create or update the image manifest and the tags * associated with the image.

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 * Reference

*/ virtual Model::PutImageOutcome PutImage(const Model::PutImageRequest& request) const; /** * A Callable wrapper for PutImage that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutImageOutcomeCallable PutImageCallable(const PutImageRequestT& request) const { return SubmitCallable(&ECRClient::PutImage, request); } /** * An Async wrapper for PutImage that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutImageAsync(const PutImageRequestT& request, const PutImageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::PutImage, request, handler, context); } /** *

The PutImageScanningConfiguration API is being * deprecated, in favor of specifying the image scanning configuration at the * registry level. For more information, see * PutRegistryScanningConfiguration.

Updates the image * scanning configuration for the specified repository.

See Also:

* AWS * API Reference

*/ virtual Model::PutImageScanningConfigurationOutcome PutImageScanningConfiguration(const Model::PutImageScanningConfigurationRequest& request) const; /** * A Callable wrapper for PutImageScanningConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutImageScanningConfigurationOutcomeCallable PutImageScanningConfigurationCallable(const PutImageScanningConfigurationRequestT& request) const { return SubmitCallable(&ECRClient::PutImageScanningConfiguration, request); } /** * An Async wrapper for PutImageScanningConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutImageScanningConfigurationAsync(const PutImageScanningConfigurationRequestT& request, const PutImageScanningConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::PutImageScanningConfiguration, request, handler, context); } /** *

Updates the image tag mutability settings for the specified repository. For * more information, see Image * tag mutability in the Amazon Elastic Container Registry User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::PutImageTagMutabilityOutcome PutImageTagMutability(const Model::PutImageTagMutabilityRequest& request) const; /** * A Callable wrapper for PutImageTagMutability that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutImageTagMutabilityOutcomeCallable PutImageTagMutabilityCallable(const PutImageTagMutabilityRequestT& request) const { return SubmitCallable(&ECRClient::PutImageTagMutability, request); } /** * An Async wrapper for PutImageTagMutability that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutImageTagMutabilityAsync(const PutImageTagMutabilityRequestT& request, const PutImageTagMutabilityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::PutImageTagMutability, request, handler, context); } /** *

Creates or updates the lifecycle policy for the specified repository. For * more information, see Lifecycle * policy template.

See Also:

AWS * API Reference

*/ virtual Model::PutLifecyclePolicyOutcome PutLifecyclePolicy(const Model::PutLifecyclePolicyRequest& request) const; /** * A Callable wrapper for PutLifecyclePolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutLifecyclePolicyOutcomeCallable PutLifecyclePolicyCallable(const PutLifecyclePolicyRequestT& request) const { return SubmitCallable(&ECRClient::PutLifecyclePolicy, request); } /** * An Async wrapper for PutLifecyclePolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutLifecyclePolicyAsync(const PutLifecyclePolicyRequestT& request, const PutLifecyclePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::PutLifecyclePolicy, request, handler, context); } /** *

Creates or updates the permissions policy for your registry.

A * registry policy is used to specify permissions for another Amazon Web Services * account and is used when configuring cross-account replication. For more * information, see Registry * permissions in the Amazon Elastic Container Registry User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::PutRegistryPolicyOutcome PutRegistryPolicy(const Model::PutRegistryPolicyRequest& request) const; /** * A Callable wrapper for PutRegistryPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutRegistryPolicyOutcomeCallable PutRegistryPolicyCallable(const PutRegistryPolicyRequestT& request) const { return SubmitCallable(&ECRClient::PutRegistryPolicy, request); } /** * An Async wrapper for PutRegistryPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutRegistryPolicyAsync(const PutRegistryPolicyRequestT& request, const PutRegistryPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::PutRegistryPolicy, request, handler, context); } /** *

Creates or updates the scanning configuration for your private * registry.

See Also:

AWS * API Reference

*/ virtual Model::PutRegistryScanningConfigurationOutcome PutRegistryScanningConfiguration(const Model::PutRegistryScanningConfigurationRequest& request) const; /** * A Callable wrapper for PutRegistryScanningConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutRegistryScanningConfigurationOutcomeCallable PutRegistryScanningConfigurationCallable(const PutRegistryScanningConfigurationRequestT& request) const { return SubmitCallable(&ECRClient::PutRegistryScanningConfiguration, request); } /** * An Async wrapper for PutRegistryScanningConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutRegistryScanningConfigurationAsync(const PutRegistryScanningConfigurationRequestT& request, const PutRegistryScanningConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::PutRegistryScanningConfiguration, request, handler, context); } /** *

Creates or updates the replication configuration for a registry. The existing * replication configuration for a repository can be retrieved with the * DescribeRegistry API action. The first time the * PutReplicationConfiguration API is called, a service-linked IAM role is created * in your account for the replication process. For more information, see Using * service-linked roles for Amazon ECR in the Amazon Elastic Container * Registry User Guide.

When configuring cross-account * replication, the destination account must grant the source account permission to * replicate. This permission is controlled using a registry permissions policy. * For more information, see PutRegistryPolicy.

See * Also:

AWS * API Reference

*/ virtual Model::PutReplicationConfigurationOutcome PutReplicationConfiguration(const Model::PutReplicationConfigurationRequest& request) const; /** * A Callable wrapper for PutReplicationConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutReplicationConfigurationOutcomeCallable PutReplicationConfigurationCallable(const PutReplicationConfigurationRequestT& request) const { return SubmitCallable(&ECRClient::PutReplicationConfiguration, request); } /** * An Async wrapper for PutReplicationConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutReplicationConfigurationAsync(const PutReplicationConfigurationRequestT& request, const PutReplicationConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::PutReplicationConfiguration, request, handler, context); } /** *

Applies a repository policy to the specified repository to control access * permissions. For more information, see Amazon * ECR Repository policies in the Amazon Elastic Container Registry User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::SetRepositoryPolicyOutcome SetRepositoryPolicy(const Model::SetRepositoryPolicyRequest& request) const; /** * A Callable wrapper for SetRepositoryPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SetRepositoryPolicyOutcomeCallable SetRepositoryPolicyCallable(const SetRepositoryPolicyRequestT& request) const { return SubmitCallable(&ECRClient::SetRepositoryPolicy, request); } /** * An Async wrapper for SetRepositoryPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SetRepositoryPolicyAsync(const SetRepositoryPolicyRequestT& request, const SetRepositoryPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::SetRepositoryPolicy, request, handler, context); } /** *

Starts an image vulnerability scan. An image scan can only be started once * per 24 hours on an individual image. This limit includes if an image was scanned * on initial push. For more information, see Image * scanning in the Amazon Elastic Container Registry User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::StartImageScanOutcome StartImageScan(const Model::StartImageScanRequest& request) const; /** * A Callable wrapper for StartImageScan that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartImageScanOutcomeCallable StartImageScanCallable(const StartImageScanRequestT& request) const { return SubmitCallable(&ECRClient::StartImageScan, request); } /** * An Async wrapper for StartImageScan that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartImageScanAsync(const StartImageScanRequestT& request, const StartImageScanResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::StartImageScan, request, handler, context); } /** *

Starts a preview of a lifecycle policy for the specified repository. This * allows you to see the results before associating the lifecycle policy with the * repository.

See Also:

AWS * API Reference

*/ virtual Model::StartLifecyclePolicyPreviewOutcome StartLifecyclePolicyPreview(const Model::StartLifecyclePolicyPreviewRequest& request) const; /** * A Callable wrapper for StartLifecyclePolicyPreview that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartLifecyclePolicyPreviewOutcomeCallable StartLifecyclePolicyPreviewCallable(const StartLifecyclePolicyPreviewRequestT& request) const { return SubmitCallable(&ECRClient::StartLifecyclePolicyPreview, request); } /** * An Async wrapper for StartLifecyclePolicyPreview that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartLifecyclePolicyPreviewAsync(const StartLifecyclePolicyPreviewRequestT& request, const StartLifecyclePolicyPreviewResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::StartLifecyclePolicyPreview, request, handler, context); } /** *

Adds specified tags to a resource with the specified ARN. Existing tags on a * resource are not changed if they are not specified in the request * parameters.

See Also:

AWS API * Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&ECRClient::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::TagResource, request, handler, context); } /** *

Deletes specified tags from a resource.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&ECRClient::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::UntagResource, request, handler, context); } /** *

Uploads an image layer part to Amazon ECR.

When an image is pushed, * each new image layer is uploaded in parts. The maximum size of each image layer * part can be 20971520 bytes (or about 20MB). The UploadLayerPart API is called * once per each new image layer part.

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 Reference

*/ virtual Model::UploadLayerPartOutcome UploadLayerPart(const Model::UploadLayerPartRequest& request) const; /** * A Callable wrapper for UploadLayerPart that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UploadLayerPartOutcomeCallable UploadLayerPartCallable(const UploadLayerPartRequestT& request) const { return SubmitCallable(&ECRClient::UploadLayerPart, request); } /** * An Async wrapper for UploadLayerPart that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UploadLayerPartAsync(const UploadLayerPartRequestT& request, const UploadLayerPartResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ECRClient::UploadLayerPart, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const ECRClientConfiguration& clientConfiguration); ECRClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace ECR } // namespace Aws