/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace ACM { namespace Model { class AddTagsToCertificateRequest; class DeleteCertificateRequest; class DescribeCertificateRequest; class ExportCertificateRequest; class GetCertificateRequest; class ImportCertificateRequest; class ListCertificatesRequest; class ListTagsForCertificateRequest; class RemoveTagsFromCertificateRequest; class RenewCertificateRequest; class RequestCertificateRequest; class ResendValidationEmailRequest; class UpdateCertificateOptionsRequest; typedef Aws::Utils::Outcome AddTagsToCertificateOutcome; typedef Aws::Utils::Outcome DeleteCertificateOutcome; typedef Aws::Utils::Outcome DescribeCertificateOutcome; typedef Aws::Utils::Outcome ExportCertificateOutcome; typedef Aws::Utils::Outcome GetCertificateOutcome; typedef Aws::Utils::Outcome ImportCertificateOutcome; typedef Aws::Utils::Outcome ListCertificatesOutcome; typedef Aws::Utils::Outcome ListTagsForCertificateOutcome; typedef Aws::Utils::Outcome RemoveTagsFromCertificateOutcome; typedef Aws::Utils::Outcome RenewCertificateOutcome; typedef Aws::Utils::Outcome RequestCertificateOutcome; typedef Aws::Utils::Outcome ResendValidationEmailOutcome; typedef Aws::Utils::Outcome UpdateCertificateOptionsOutcome; typedef std::future AddTagsToCertificateOutcomeCallable; typedef std::future DeleteCertificateOutcomeCallable; typedef std::future DescribeCertificateOutcomeCallable; typedef std::future ExportCertificateOutcomeCallable; typedef std::future GetCertificateOutcomeCallable; typedef std::future ImportCertificateOutcomeCallable; typedef std::future ListCertificatesOutcomeCallable; typedef std::future ListTagsForCertificateOutcomeCallable; typedef std::future RemoveTagsFromCertificateOutcomeCallable; typedef std::future RenewCertificateOutcomeCallable; typedef std::future RequestCertificateOutcomeCallable; typedef std::future ResendValidationEmailOutcomeCallable; typedef std::future UpdateCertificateOptionsOutcomeCallable; } // namespace Model class ACMClient; typedef std::function&) > AddTagsToCertificateResponseReceivedHandler; typedef std::function&) > DeleteCertificateResponseReceivedHandler; typedef std::function&) > DescribeCertificateResponseReceivedHandler; typedef std::function&) > ExportCertificateResponseReceivedHandler; typedef std::function&) > GetCertificateResponseReceivedHandler; typedef std::function&) > ImportCertificateResponseReceivedHandler; typedef std::function&) > ListCertificatesResponseReceivedHandler; typedef std::function&) > ListTagsForCertificateResponseReceivedHandler; typedef std::function&) > RemoveTagsFromCertificateResponseReceivedHandler; typedef std::function&) > RenewCertificateResponseReceivedHandler; typedef std::function&) > RequestCertificateResponseReceivedHandler; typedef std::function&) > ResendValidationEmailResponseReceivedHandler; typedef std::function&) > UpdateCertificateOptionsResponseReceivedHandler; /** * AWS Certificate Manager

Welcome to the AWS Certificate * Manager (ACM) API documentation.

You can use ACM to manage SSL/TLS * certificates for your AWS-based websites and applications. For general * information about using ACM, see the AWS Certificate * Manager User Guide .

*/ class AWS_ACM_API ACMClient : public Aws::Client::AWSJsonClient { public: typedef Aws::Client::AWSJsonClient BASECLASS; /** * 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. */ ACMClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::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. */ ACMClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::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 */ ACMClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~ACMClient(); /** *

Adds one or more tags to an ACM certificate. Tags are labels that you can use * to identify and organize your AWS resources. Each tag consists of a * key and an optional value. You specify the certificate * on input by its Amazon Resource Name (ARN). You specify the tag by using a * key-value pair.

You can apply a tag to just one certificate if you want * to identify a specific characteristic of that certificate, or you can apply the * same tag to multiple certificates if you want to filter for a common * relationship among those certificates. Similarly, you can apply the same tag to * multiple resources if you want to specify a relationship among those resources. * For example, you can add the same tag to an ACM certificate and an Elastic Load * Balancing load balancer to indicate that they are both used by the same website. * For more information, see Tagging ACM * certificates.

To remove one or more tags, use the * RemoveTagsFromCertificate action. To view all of the tags that have been * applied to the certificate, use the ListTagsForCertificate action. *

See Also:

AWS * API Reference

*/ virtual Model::AddTagsToCertificateOutcome AddTagsToCertificate(const Model::AddTagsToCertificateRequest& request) const; /** *

Adds one or more tags to an ACM certificate. Tags are labels that you can use * to identify and organize your AWS resources. Each tag consists of a * key and an optional value. You specify the certificate * on input by its Amazon Resource Name (ARN). You specify the tag by using a * key-value pair.

You can apply a tag to just one certificate if you want * to identify a specific characteristic of that certificate, or you can apply the * same tag to multiple certificates if you want to filter for a common * relationship among those certificates. Similarly, you can apply the same tag to * multiple resources if you want to specify a relationship among those resources. * For example, you can add the same tag to an ACM certificate and an Elastic Load * Balancing load balancer to indicate that they are both used by the same website. * For more information, see Tagging ACM * certificates.

To remove one or more tags, use the * RemoveTagsFromCertificate action. To view all of the tags that have been * applied to the certificate, use the ListTagsForCertificate action. *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AddTagsToCertificateOutcomeCallable AddTagsToCertificateCallable(const Model::AddTagsToCertificateRequest& request) const; /** *

Adds one or more tags to an ACM certificate. Tags are labels that you can use * to identify and organize your AWS resources. Each tag consists of a * key and an optional value. You specify the certificate * on input by its Amazon Resource Name (ARN). You specify the tag by using a * key-value pair.

You can apply a tag to just one certificate if you want * to identify a specific characteristic of that certificate, or you can apply the * same tag to multiple certificates if you want to filter for a common * relationship among those certificates. Similarly, you can apply the same tag to * multiple resources if you want to specify a relationship among those resources. * For example, you can add the same tag to an ACM certificate and an Elastic Load * Balancing load balancer to indicate that they are both used by the same website. * For more information, see Tagging ACM * certificates.

To remove one or more tags, use the * RemoveTagsFromCertificate action. To view all of the tags that have been * applied to the certificate, use the ListTagsForCertificate action. *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AddTagsToCertificateAsync(const Model::AddTagsToCertificateRequest& request, const AddTagsToCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes a certificate and its associated private key. If this action * succeeds, the certificate no longer appears in the list that can be displayed by * calling the ListCertificates action or be retrieved by calling the * GetCertificate action. The certificate will not be available for use by * AWS services integrated with ACM.

You cannot delete an ACM * certificate that is being used by another AWS service. To delete a certificate * that is in use, the certificate association must first be removed.

*

See Also:

AWS * API Reference

*/ virtual Model::DeleteCertificateOutcome DeleteCertificate(const Model::DeleteCertificateRequest& request) const; /** *

Deletes a certificate and its associated private key. If this action * succeeds, the certificate no longer appears in the list that can be displayed by * calling the ListCertificates action or be retrieved by calling the * GetCertificate action. The certificate will not be available for use by * AWS services integrated with ACM.

You cannot delete an ACM * certificate that is being used by another AWS service. To delete a certificate * that is in use, the certificate association must first be removed.

*

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteCertificateOutcomeCallable DeleteCertificateCallable(const Model::DeleteCertificateRequest& request) const; /** *

Deletes a certificate and its associated private key. If this action * succeeds, the certificate no longer appears in the list that can be displayed by * calling the ListCertificates action or be retrieved by calling the * GetCertificate action. The certificate will not be available for use by * AWS services integrated with ACM.

You cannot delete an ACM * certificate that is being used by another AWS service. To delete a certificate * that is in use, the certificate association must first be removed.

*

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteCertificateAsync(const Model::DeleteCertificateRequest& request, const DeleteCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns detailed metadata about the specified ACM certificate.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeCertificateOutcome DescribeCertificate(const Model::DescribeCertificateRequest& request) const; /** *

Returns detailed metadata about the specified ACM certificate.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeCertificateOutcomeCallable DescribeCertificateCallable(const Model::DescribeCertificateRequest& request) const; /** *

Returns detailed metadata about the specified ACM certificate.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeCertificateAsync(const Model::DescribeCertificateRequest& request, const DescribeCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Exports a private certificate issued by a private certificate authority (CA) * for use anywhere. The exported file contains the certificate, the certificate * chain, and the encrypted private 2048-bit RSA key associated with the public key * that is embedded in the certificate. For security, you must assign a passphrase * for the private key when exporting it.

For information about exporting * and formatting a certificate using the ACM console or CLI, see Export * a Private Certificate.

See Also:

AWS * API Reference

*/ virtual Model::ExportCertificateOutcome ExportCertificate(const Model::ExportCertificateRequest& request) const; /** *

Exports a private certificate issued by a private certificate authority (CA) * for use anywhere. The exported file contains the certificate, the certificate * chain, and the encrypted private 2048-bit RSA key associated with the public key * that is embedded in the certificate. For security, you must assign a passphrase * for the private key when exporting it.

For information about exporting * and formatting a certificate using the ACM console or CLI, see Export * a Private Certificate.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ExportCertificateOutcomeCallable ExportCertificateCallable(const Model::ExportCertificateRequest& request) const; /** *

Exports a private certificate issued by a private certificate authority (CA) * for use anywhere. The exported file contains the certificate, the certificate * chain, and the encrypted private 2048-bit RSA key associated with the public key * that is embedded in the certificate. For security, you must assign a passphrase * for the private key when exporting it.

For information about exporting * and formatting a certificate using the ACM console or CLI, see Export * a Private Certificate.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ExportCertificateAsync(const Model::ExportCertificateRequest& request, const ExportCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves an Amazon-issued certificate and its certificate chain. The chain * consists of the certificate of the issuing CA and the intermediate certificates * of any other subordinate CAs. All of the certificates are base64 encoded. You * can use OpenSSL to * decode the certificates and inspect individual fields.

See Also:

* AWS * API Reference

*/ virtual Model::GetCertificateOutcome GetCertificate(const Model::GetCertificateRequest& request) const; /** *

Retrieves an Amazon-issued certificate and its certificate chain. The chain * consists of the certificate of the issuing CA and the intermediate certificates * of any other subordinate CAs. All of the certificates are base64 encoded. You * can use OpenSSL to * decode the certificates and inspect individual fields.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetCertificateOutcomeCallable GetCertificateCallable(const Model::GetCertificateRequest& request) const; /** *

Retrieves an Amazon-issued certificate and its certificate chain. The chain * consists of the certificate of the issuing CA and the intermediate certificates * of any other subordinate CAs. All of the certificates are base64 encoded. You * can use OpenSSL to * decode the certificates and inspect individual fields.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetCertificateAsync(const Model::GetCertificateRequest& request, const GetCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Imports a certificate into AWS Certificate Manager (ACM) to use with services * that are integrated with ACM. Note that integrated * services allow only certificate types and keys they support to be associated * with their resources. Further, their support differs depending on whether the * certificate is imported into IAM or into ACM. For more information, see the * documentation for each service. For more information about importing * certificates into ACM, see Importing * Certificates in the AWS Certificate Manager User Guide.

*

ACM does not provide managed * renewal for certificates that you import.

Note the following * guidelines when importing third party certificates:

  • You must * enter the private key that matches the certificate you are importing.

  • *
  • The private key must be unencrypted. You cannot import a private key * that is protected by a password or a passphrase.

  • If the * certificate you are importing is not self-signed, you must enter its certificate * chain.

  • If a certificate chain is included, the issuer must be * the subject of one of the certificates in the chain.

  • The * certificate, private key, and certificate chain must be PEM-encoded.

  • *
  • The current time must be between the Not Before and * Not After certificate fields.

  • The * Issuer field must not be empty.

  • The OCSP * authority URL, if present, must not exceed 1000 characters.

  • To * import a new certificate, omit the CertificateArn argument. Include * this argument only when you want to replace a previously imported certifica

    *
  • When you import a certificate by using the CLI, you must specify * the certificate, the certificate chain, and the private key by their file names * preceded by file://. For example, you can specify a certificate * saved in the C:\temp folder as * file://C:\temp\certificate_to_import.pem. If you are making an HTTP * or HTTPS Query request, include these arguments as BLOBs.

  • *

    When you import a certificate by using an SDK, you must specify the * certificate, the certificate chain, and the private key files in the manner * required by the programming language you're using.

  • The * cryptographic algorithm of an imported certificate must match the algorithm of * the signing CA. For example, if the signing CA key type is RSA, then the * certificate key type must also be RSA.

This operation returns * the Amazon * Resource Name (ARN) of the imported certificate.

See Also:

* AWS * API Reference

*/ virtual Model::ImportCertificateOutcome ImportCertificate(const Model::ImportCertificateRequest& request) const; /** *

Imports a certificate into AWS Certificate Manager (ACM) to use with services * that are integrated with ACM. Note that integrated * services allow only certificate types and keys they support to be associated * with their resources. Further, their support differs depending on whether the * certificate is imported into IAM or into ACM. For more information, see the * documentation for each service. For more information about importing * certificates into ACM, see Importing * Certificates in the AWS Certificate Manager User Guide.

*

ACM does not provide managed * renewal for certificates that you import.

Note the following * guidelines when importing third party certificates:

  • You must * enter the private key that matches the certificate you are importing.

  • *
  • The private key must be unencrypted. You cannot import a private key * that is protected by a password or a passphrase.

  • If the * certificate you are importing is not self-signed, you must enter its certificate * chain.

  • If a certificate chain is included, the issuer must be * the subject of one of the certificates in the chain.

  • The * certificate, private key, and certificate chain must be PEM-encoded.

  • *
  • The current time must be between the Not Before and * Not After certificate fields.

  • The * Issuer field must not be empty.

  • The OCSP * authority URL, if present, must not exceed 1000 characters.

  • To * import a new certificate, omit the CertificateArn argument. Include * this argument only when you want to replace a previously imported certifica

    *
  • When you import a certificate by using the CLI, you must specify * the certificate, the certificate chain, and the private key by their file names * preceded by file://. For example, you can specify a certificate * saved in the C:\temp folder as * file://C:\temp\certificate_to_import.pem. If you are making an HTTP * or HTTPS Query request, include these arguments as BLOBs.

  • *

    When you import a certificate by using an SDK, you must specify the * certificate, the certificate chain, and the private key files in the manner * required by the programming language you're using.

  • The * cryptographic algorithm of an imported certificate must match the algorithm of * the signing CA. For example, if the signing CA key type is RSA, then the * certificate key type must also be RSA.

This operation returns * the Amazon * Resource Name (ARN) of the imported certificate.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ImportCertificateOutcomeCallable ImportCertificateCallable(const Model::ImportCertificateRequest& request) const; /** *

Imports a certificate into AWS Certificate Manager (ACM) to use with services * that are integrated with ACM. Note that integrated * services allow only certificate types and keys they support to be associated * with their resources. Further, their support differs depending on whether the * certificate is imported into IAM or into ACM. For more information, see the * documentation for each service. For more information about importing * certificates into ACM, see Importing * Certificates in the AWS Certificate Manager User Guide.

*

ACM does not provide managed * renewal for certificates that you import.

Note the following * guidelines when importing third party certificates:

  • You must * enter the private key that matches the certificate you are importing.

  • *
  • The private key must be unencrypted. You cannot import a private key * that is protected by a password or a passphrase.

  • If the * certificate you are importing is not self-signed, you must enter its certificate * chain.

  • If a certificate chain is included, the issuer must be * the subject of one of the certificates in the chain.

  • The * certificate, private key, and certificate chain must be PEM-encoded.

  • *
  • The current time must be between the Not Before and * Not After certificate fields.

  • The * Issuer field must not be empty.

  • The OCSP * authority URL, if present, must not exceed 1000 characters.

  • To * import a new certificate, omit the CertificateArn argument. Include * this argument only when you want to replace a previously imported certifica

    *
  • When you import a certificate by using the CLI, you must specify * the certificate, the certificate chain, and the private key by their file names * preceded by file://. For example, you can specify a certificate * saved in the C:\temp folder as * file://C:\temp\certificate_to_import.pem. If you are making an HTTP * or HTTPS Query request, include these arguments as BLOBs.

  • *

    When you import a certificate by using an SDK, you must specify the * certificate, the certificate chain, and the private key files in the manner * required by the programming language you're using.

  • The * cryptographic algorithm of an imported certificate must match the algorithm of * the signing CA. For example, if the signing CA key type is RSA, then the * certificate key type must also be RSA.

This operation returns * the Amazon * Resource Name (ARN) of the imported certificate.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ImportCertificateAsync(const Model::ImportCertificateRequest& request, const ImportCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves a list of certificate ARNs and domain names. You can request that * only certificates that match a specific status be listed. You can also filter by * specific attributes of the certificate. Default filtering returns only * RSA_2048 certificates. For more information, see * Filters.

See Also:

AWS * API Reference

*/ virtual Model::ListCertificatesOutcome ListCertificates(const Model::ListCertificatesRequest& request) const; /** *

Retrieves a list of certificate ARNs and domain names. You can request that * only certificates that match a specific status be listed. You can also filter by * specific attributes of the certificate. Default filtering returns only * RSA_2048 certificates. For more information, see * Filters.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListCertificatesOutcomeCallable ListCertificatesCallable(const Model::ListCertificatesRequest& request) const; /** *

Retrieves a list of certificate ARNs and domain names. You can request that * only certificates that match a specific status be listed. You can also filter by * specific attributes of the certificate. Default filtering returns only * RSA_2048 certificates. For more information, see * Filters.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListCertificatesAsync(const Model::ListCertificatesRequest& request, const ListCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the tags that have been applied to the ACM certificate. Use the * certificate's Amazon Resource Name (ARN) to specify the certificate. To add a * tag to an ACM certificate, use the AddTagsToCertificate action. To delete * a tag, use the RemoveTagsFromCertificate action.

See * Also:

AWS * API Reference

*/ virtual Model::ListTagsForCertificateOutcome ListTagsForCertificate(const Model::ListTagsForCertificateRequest& request) const; /** *

Lists the tags that have been applied to the ACM certificate. Use the * certificate's Amazon Resource Name (ARN) to specify the certificate. To add a * tag to an ACM certificate, use the AddTagsToCertificate action. To delete * a tag, use the RemoveTagsFromCertificate action.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListTagsForCertificateOutcomeCallable ListTagsForCertificateCallable(const Model::ListTagsForCertificateRequest& request) const; /** *

Lists the tags that have been applied to the ACM certificate. Use the * certificate's Amazon Resource Name (ARN) to specify the certificate. To add a * tag to an ACM certificate, use the AddTagsToCertificate action. To delete * a tag, use the RemoveTagsFromCertificate action.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListTagsForCertificateAsync(const Model::ListTagsForCertificateRequest& request, const ListTagsForCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Remove one or more tags from an ACM certificate. A tag consists of a * key-value pair. If you do not specify the value portion of the tag when calling * this function, the tag will be removed regardless of value. If you specify a * value, the tag is removed only if it is associated with the specified value. *

To add tags to a certificate, use the AddTagsToCertificate * action. To view all of the tags that have been applied to a specific ACM * certificate, use the ListTagsForCertificate action.

See * Also:

AWS * API Reference

*/ virtual Model::RemoveTagsFromCertificateOutcome RemoveTagsFromCertificate(const Model::RemoveTagsFromCertificateRequest& request) const; /** *

Remove one or more tags from an ACM certificate. A tag consists of a * key-value pair. If you do not specify the value portion of the tag when calling * this function, the tag will be removed regardless of value. If you specify a * value, the tag is removed only if it is associated with the specified value. *

To add tags to a certificate, use the AddTagsToCertificate * action. To view all of the tags that have been applied to a specific ACM * certificate, use the ListTagsForCertificate action.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RemoveTagsFromCertificateOutcomeCallable RemoveTagsFromCertificateCallable(const Model::RemoveTagsFromCertificateRequest& request) const; /** *

Remove one or more tags from an ACM certificate. A tag consists of a * key-value pair. If you do not specify the value portion of the tag when calling * this function, the tag will be removed regardless of value. If you specify a * value, the tag is removed only if it is associated with the specified value. *

To add tags to a certificate, use the AddTagsToCertificate * action. To view all of the tags that have been applied to a specific ACM * certificate, use the ListTagsForCertificate action.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RemoveTagsFromCertificateAsync(const Model::RemoveTagsFromCertificateRequest& request, const RemoveTagsFromCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Renews an eligable ACM certificate. At this time, only exported private * certificates can be renewed with this operation. In order to renew your ACM PCA * certificates with ACM, you must first grant * the ACM service principal permission to do so. For more information, see Testing * Managed Renewal in the ACM User Guide.

See Also:

AWS * API Reference

*/ virtual Model::RenewCertificateOutcome RenewCertificate(const Model::RenewCertificateRequest& request) const; /** *

Renews an eligable ACM certificate. At this time, only exported private * certificates can be renewed with this operation. In order to renew your ACM PCA * certificates with ACM, you must first grant * the ACM service principal permission to do so. For more information, see Testing * Managed Renewal in the ACM User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RenewCertificateOutcomeCallable RenewCertificateCallable(const Model::RenewCertificateRequest& request) const; /** *

Renews an eligable ACM certificate. At this time, only exported private * certificates can be renewed with this operation. In order to renew your ACM PCA * certificates with ACM, you must first grant * the ACM service principal permission to do so. For more information, see Testing * Managed Renewal in the ACM User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RenewCertificateAsync(const Model::RenewCertificateRequest& request, const RenewCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Requests an ACM certificate for use with other AWS services. To request an * ACM certificate, you must specify a fully qualified domain name (FQDN) in the * DomainName parameter. You can also specify additional FQDNs in the * SubjectAlternativeNames parameter.

If you are requesting a * private certificate, domain validation is not required. If you are requesting a * public certificate, each domain name that you specify must be validated to * verify that you own or control the domain. You can use DNS * validation or email * validation. We recommend that you use DNS validation. ACM issues public * certificates after receiving approval from the domain owner.

See * Also:

AWS * API Reference

*/ virtual Model::RequestCertificateOutcome RequestCertificate(const Model::RequestCertificateRequest& request) const; /** *

Requests an ACM certificate for use with other AWS services. To request an * ACM certificate, you must specify a fully qualified domain name (FQDN) in the * DomainName parameter. You can also specify additional FQDNs in the * SubjectAlternativeNames parameter.

If you are requesting a * private certificate, domain validation is not required. If you are requesting a * public certificate, each domain name that you specify must be validated to * verify that you own or control the domain. You can use DNS * validation or email * validation. We recommend that you use DNS validation. ACM issues public * certificates after receiving approval from the domain owner.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RequestCertificateOutcomeCallable RequestCertificateCallable(const Model::RequestCertificateRequest& request) const; /** *

Requests an ACM certificate for use with other AWS services. To request an * ACM certificate, you must specify a fully qualified domain name (FQDN) in the * DomainName parameter. You can also specify additional FQDNs in the * SubjectAlternativeNames parameter.

If you are requesting a * private certificate, domain validation is not required. If you are requesting a * public certificate, each domain name that you specify must be validated to * verify that you own or control the domain. You can use DNS * validation or email * validation. We recommend that you use DNS validation. ACM issues public * certificates after receiving approval from the domain owner.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RequestCertificateAsync(const Model::RequestCertificateRequest& request, const RequestCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Resends the email that requests domain ownership validation. The domain owner * or an authorized representative must approve the ACM certificate before it can * be issued. The certificate can be approved by clicking a link in the mail to * navigate to the Amazon certificate approval website and then clicking I * Approve. However, the validation email can be blocked by spam filters. * Therefore, if you do not receive the original mail, you can request that the * mail be resent within 72 hours of requesting the ACM certificate. If more than * 72 hours have elapsed since your original request or since your last attempt to * resend validation mail, you must request a new certificate. For more information * about setting up your contact email addresses, see Configure * Email for your Domain.

See Also:

AWS * API Reference

*/ virtual Model::ResendValidationEmailOutcome ResendValidationEmail(const Model::ResendValidationEmailRequest& request) const; /** *

Resends the email that requests domain ownership validation. The domain owner * or an authorized representative must approve the ACM certificate before it can * be issued. The certificate can be approved by clicking a link in the mail to * navigate to the Amazon certificate approval website and then clicking I * Approve. However, the validation email can be blocked by spam filters. * Therefore, if you do not receive the original mail, you can request that the * mail be resent within 72 hours of requesting the ACM certificate. If more than * 72 hours have elapsed since your original request or since your last attempt to * resend validation mail, you must request a new certificate. For more information * about setting up your contact email addresses, see Configure * Email for your Domain.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ResendValidationEmailOutcomeCallable ResendValidationEmailCallable(const Model::ResendValidationEmailRequest& request) const; /** *

Resends the email that requests domain ownership validation. The domain owner * or an authorized representative must approve the ACM certificate before it can * be issued. The certificate can be approved by clicking a link in the mail to * navigate to the Amazon certificate approval website and then clicking I * Approve. However, the validation email can be blocked by spam filters. * Therefore, if you do not receive the original mail, you can request that the * mail be resent within 72 hours of requesting the ACM certificate. If more than * 72 hours have elapsed since your original request or since your last attempt to * resend validation mail, you must request a new certificate. For more information * about setting up your contact email addresses, see Configure * Email for your Domain.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ResendValidationEmailAsync(const Model::ResendValidationEmailRequest& request, const ResendValidationEmailResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates a certificate. Currently, you can use this function to specify * whether to opt in to or out of recording your certificate in a certificate * transparency log. For more information, see * Opting Out of Certificate Transparency Logging.

See Also:

* AWS * API Reference

*/ virtual Model::UpdateCertificateOptionsOutcome UpdateCertificateOptions(const Model::UpdateCertificateOptionsRequest& request) const; /** *

Updates a certificate. Currently, you can use this function to specify * whether to opt in to or out of recording your certificate in a certificate * transparency log. For more information, see * Opting Out of Certificate Transparency Logging.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateCertificateOptionsOutcomeCallable UpdateCertificateOptionsCallable(const Model::UpdateCertificateOptionsRequest& request) const; /** *

Updates a certificate. Currently, you can use this function to specify * whether to opt in to or out of recording your certificate in a certificate * transparency log. For more information, see * Opting Out of Certificate Transparency Logging.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateCertificateOptionsAsync(const Model::UpdateCertificateOptionsRequest& request, const UpdateCertificateOptionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void AddTagsToCertificateAsyncHelper(const Model::AddTagsToCertificateRequest& request, const AddTagsToCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteCertificateAsyncHelper(const Model::DeleteCertificateRequest& request, const DeleteCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeCertificateAsyncHelper(const Model::DescribeCertificateRequest& request, const DescribeCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ExportCertificateAsyncHelper(const Model::ExportCertificateRequest& request, const ExportCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetCertificateAsyncHelper(const Model::GetCertificateRequest& request, const GetCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ImportCertificateAsyncHelper(const Model::ImportCertificateRequest& request, const ImportCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListCertificatesAsyncHelper(const Model::ListCertificatesRequest& request, const ListCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsForCertificateAsyncHelper(const Model::ListTagsForCertificateRequest& request, const ListTagsForCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RemoveTagsFromCertificateAsyncHelper(const Model::RemoveTagsFromCertificateRequest& request, const RemoveTagsFromCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RenewCertificateAsyncHelper(const Model::RenewCertificateRequest& request, const RenewCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RequestCertificateAsyncHelper(const Model::RequestCertificateRequest& request, const RequestCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ResendValidationEmailAsyncHelper(const Model::ResendValidationEmailRequest& request, const ResendValidationEmailResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateCertificateOptionsAsyncHelper(const Model::UpdateCertificateOptionsRequest& request, const UpdateCertificateOptionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace ACM } // namespace Aws