1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/acm/ACM_EXPORTS.h> 8 #include <aws/acm/ACMErrors.h> 9 #include <aws/core/client/AWSError.h> 10 #include <aws/core/client/ClientConfiguration.h> 11 #include <aws/core/client/AWSClient.h> 12 #include <aws/core/utils/memory/stl/AWSString.h> 13 #include <aws/core/utils/json/JsonSerializer.h> 14 #include <aws/acm/model/DescribeCertificateResult.h> 15 #include <aws/acm/model/ExportCertificateResult.h> 16 #include <aws/acm/model/GetAccountConfigurationResult.h> 17 #include <aws/acm/model/GetCertificateResult.h> 18 #include <aws/acm/model/ImportCertificateResult.h> 19 #include <aws/acm/model/ListCertificatesResult.h> 20 #include <aws/acm/model/ListTagsForCertificateResult.h> 21 #include <aws/acm/model/RequestCertificateResult.h> 22 #include <aws/core/NoResult.h> 23 #include <aws/core/client/AsyncCallerContext.h> 24 #include <aws/core/http/HttpTypes.h> 25 #include <future> 26 #include <functional> 27 28 namespace Aws 29 { 30 31 namespace Http 32 { 33 class HttpClient; 34 class HttpClientFactory; 35 } // namespace Http 36 37 namespace Utils 38 { 39 template< typename R, typename E> class Outcome; 40 namespace Threading 41 { 42 class Executor; 43 } // namespace Threading 44 } // namespace Utils 45 46 namespace Auth 47 { 48 class AWSCredentials; 49 class AWSCredentialsProvider; 50 } // namespace Auth 51 52 namespace Client 53 { 54 class RetryStrategy; 55 } // namespace Client 56 57 namespace ACM 58 { 59 60 namespace Model 61 { 62 class AddTagsToCertificateRequest; 63 class DeleteCertificateRequest; 64 class DescribeCertificateRequest; 65 class ExportCertificateRequest; 66 class GetCertificateRequest; 67 class ImportCertificateRequest; 68 class ListCertificatesRequest; 69 class ListTagsForCertificateRequest; 70 class PutAccountConfigurationRequest; 71 class RemoveTagsFromCertificateRequest; 72 class RenewCertificateRequest; 73 class RequestCertificateRequest; 74 class ResendValidationEmailRequest; 75 class UpdateCertificateOptionsRequest; 76 77 typedef Aws::Utils::Outcome<Aws::NoResult, ACMError> AddTagsToCertificateOutcome; 78 typedef Aws::Utils::Outcome<Aws::NoResult, ACMError> DeleteCertificateOutcome; 79 typedef Aws::Utils::Outcome<DescribeCertificateResult, ACMError> DescribeCertificateOutcome; 80 typedef Aws::Utils::Outcome<ExportCertificateResult, ACMError> ExportCertificateOutcome; 81 typedef Aws::Utils::Outcome<GetAccountConfigurationResult, ACMError> GetAccountConfigurationOutcome; 82 typedef Aws::Utils::Outcome<GetCertificateResult, ACMError> GetCertificateOutcome; 83 typedef Aws::Utils::Outcome<ImportCertificateResult, ACMError> ImportCertificateOutcome; 84 typedef Aws::Utils::Outcome<ListCertificatesResult, ACMError> ListCertificatesOutcome; 85 typedef Aws::Utils::Outcome<ListTagsForCertificateResult, ACMError> ListTagsForCertificateOutcome; 86 typedef Aws::Utils::Outcome<Aws::NoResult, ACMError> PutAccountConfigurationOutcome; 87 typedef Aws::Utils::Outcome<Aws::NoResult, ACMError> RemoveTagsFromCertificateOutcome; 88 typedef Aws::Utils::Outcome<Aws::NoResult, ACMError> RenewCertificateOutcome; 89 typedef Aws::Utils::Outcome<RequestCertificateResult, ACMError> RequestCertificateOutcome; 90 typedef Aws::Utils::Outcome<Aws::NoResult, ACMError> ResendValidationEmailOutcome; 91 typedef Aws::Utils::Outcome<Aws::NoResult, ACMError> UpdateCertificateOptionsOutcome; 92 93 typedef std::future<AddTagsToCertificateOutcome> AddTagsToCertificateOutcomeCallable; 94 typedef std::future<DeleteCertificateOutcome> DeleteCertificateOutcomeCallable; 95 typedef std::future<DescribeCertificateOutcome> DescribeCertificateOutcomeCallable; 96 typedef std::future<ExportCertificateOutcome> ExportCertificateOutcomeCallable; 97 typedef std::future<GetAccountConfigurationOutcome> GetAccountConfigurationOutcomeCallable; 98 typedef std::future<GetCertificateOutcome> GetCertificateOutcomeCallable; 99 typedef std::future<ImportCertificateOutcome> ImportCertificateOutcomeCallable; 100 typedef std::future<ListCertificatesOutcome> ListCertificatesOutcomeCallable; 101 typedef std::future<ListTagsForCertificateOutcome> ListTagsForCertificateOutcomeCallable; 102 typedef std::future<PutAccountConfigurationOutcome> PutAccountConfigurationOutcomeCallable; 103 typedef std::future<RemoveTagsFromCertificateOutcome> RemoveTagsFromCertificateOutcomeCallable; 104 typedef std::future<RenewCertificateOutcome> RenewCertificateOutcomeCallable; 105 typedef std::future<RequestCertificateOutcome> RequestCertificateOutcomeCallable; 106 typedef std::future<ResendValidationEmailOutcome> ResendValidationEmailOutcomeCallable; 107 typedef std::future<UpdateCertificateOptionsOutcome> UpdateCertificateOptionsOutcomeCallable; 108 } // namespace Model 109 110 class ACMClient; 111 112 typedef std::function<void(const ACMClient*, const Model::AddTagsToCertificateRequest&, const Model::AddTagsToCertificateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AddTagsToCertificateResponseReceivedHandler; 113 typedef std::function<void(const ACMClient*, const Model::DeleteCertificateRequest&, const Model::DeleteCertificateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteCertificateResponseReceivedHandler; 114 typedef std::function<void(const ACMClient*, const Model::DescribeCertificateRequest&, const Model::DescribeCertificateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeCertificateResponseReceivedHandler; 115 typedef std::function<void(const ACMClient*, const Model::ExportCertificateRequest&, const Model::ExportCertificateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ExportCertificateResponseReceivedHandler; 116 typedef std::function<void(const ACMClient*, const Model::GetAccountConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAccountConfigurationResponseReceivedHandler; 117 typedef std::function<void(const ACMClient*, const Model::GetCertificateRequest&, const Model::GetCertificateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetCertificateResponseReceivedHandler; 118 typedef std::function<void(const ACMClient*, const Model::ImportCertificateRequest&, const Model::ImportCertificateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ImportCertificateResponseReceivedHandler; 119 typedef std::function<void(const ACMClient*, const Model::ListCertificatesRequest&, const Model::ListCertificatesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListCertificatesResponseReceivedHandler; 120 typedef std::function<void(const ACMClient*, const Model::ListTagsForCertificateRequest&, const Model::ListTagsForCertificateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForCertificateResponseReceivedHandler; 121 typedef std::function<void(const ACMClient*, const Model::PutAccountConfigurationRequest&, const Model::PutAccountConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutAccountConfigurationResponseReceivedHandler; 122 typedef std::function<void(const ACMClient*, const Model::RemoveTagsFromCertificateRequest&, const Model::RemoveTagsFromCertificateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RemoveTagsFromCertificateResponseReceivedHandler; 123 typedef std::function<void(const ACMClient*, const Model::RenewCertificateRequest&, const Model::RenewCertificateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RenewCertificateResponseReceivedHandler; 124 typedef std::function<void(const ACMClient*, const Model::RequestCertificateRequest&, const Model::RequestCertificateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RequestCertificateResponseReceivedHandler; 125 typedef std::function<void(const ACMClient*, const Model::ResendValidationEmailRequest&, const Model::ResendValidationEmailOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ResendValidationEmailResponseReceivedHandler; 126 typedef std::function<void(const ACMClient*, const Model::UpdateCertificateOptionsRequest&, const Model::UpdateCertificateOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateCertificateOptionsResponseReceivedHandler; 127 128 /** 129 * <fullname>Amazon Web Services Certificate Manager</fullname> <p>You can use 130 * Amazon Web Services Certificate Manager (ACM) to manage SSL/TLS certificates for 131 * your Amazon Web Services-based websites and applications. For more information 132 * about using ACM, see the <a 133 * href="https://docs.aws.amazon.com/acm/latest/userguide/">Amazon Web Services 134 * Certificate Manager User Guide</a>.</p> 135 */ 136 class AWS_ACM_API ACMClient : public Aws::Client::AWSJsonClient 137 { 138 public: 139 typedef Aws::Client::AWSJsonClient BASECLASS; 140 141 /** 142 * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config 143 * is not specified, it will be initialized to default values. 144 */ 145 ACMClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); 146 147 /** 148 * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config 149 * is not specified, it will be initialized to default values. 150 */ 151 ACMClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); 152 153 /** 154 * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, 155 * the default http client factory will be used 156 */ 157 ACMClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider, 158 const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); 159 160 virtual ~ACMClient(); 161 162 163 /** 164 * <p>Adds one or more tags to an ACM certificate. Tags are labels that you can use 165 * to identify and organize your Amazon Web Services resources. Each tag consists 166 * of a <code>key</code> and an optional <code>value</code>. You specify the 167 * certificate on input by its Amazon Resource Name (ARN). You specify the tag by 168 * using a key-value pair. </p> <p>You can apply a tag to just one certificate if 169 * you want to identify a specific characteristic of that certificate, or you can 170 * apply the same tag to multiple certificates if you want to filter for a common 171 * relationship among those certificates. Similarly, you can apply the same tag to 172 * multiple resources if you want to specify a relationship among those resources. 173 * For example, you can add the same tag to an ACM certificate and an Elastic Load 174 * Balancing load balancer to indicate that they are both used by the same website. 175 * For more information, see <a 176 * href="https://docs.aws.amazon.com/acm/latest/userguide/tags.html">Tagging ACM 177 * certificates</a>. </p> <p>To remove one or more tags, use the 178 * <a>RemoveTagsFromCertificate</a> action. To view all of the tags that have been 179 * applied to the certificate, use the <a>ListTagsForCertificate</a> action. 180 * </p><p><h3>See Also:</h3> <a 181 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/AddTagsToCertificate">AWS 182 * API Reference</a></p> 183 */ 184 virtual Model::AddTagsToCertificateOutcome AddTagsToCertificate(const Model::AddTagsToCertificateRequest& request) const; 185 186 /** 187 * <p>Adds one or more tags to an ACM certificate. Tags are labels that you can use 188 * to identify and organize your Amazon Web Services resources. Each tag consists 189 * of a <code>key</code> and an optional <code>value</code>. You specify the 190 * certificate on input by its Amazon Resource Name (ARN). You specify the tag by 191 * using a key-value pair. </p> <p>You can apply a tag to just one certificate if 192 * you want to identify a specific characteristic of that certificate, or you can 193 * apply the same tag to multiple certificates if you want to filter for a common 194 * relationship among those certificates. Similarly, you can apply the same tag to 195 * multiple resources if you want to specify a relationship among those resources. 196 * For example, you can add the same tag to an ACM certificate and an Elastic Load 197 * Balancing load balancer to indicate that they are both used by the same website. 198 * For more information, see <a 199 * href="https://docs.aws.amazon.com/acm/latest/userguide/tags.html">Tagging ACM 200 * certificates</a>. </p> <p>To remove one or more tags, use the 201 * <a>RemoveTagsFromCertificate</a> action. To view all of the tags that have been 202 * applied to the certificate, use the <a>ListTagsForCertificate</a> action. 203 * </p><p><h3>See Also:</h3> <a 204 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/AddTagsToCertificate">AWS 205 * API Reference</a></p> 206 * 207 * returns a future to the operation so that it can be executed in parallel to other requests. 208 */ 209 virtual Model::AddTagsToCertificateOutcomeCallable AddTagsToCertificateCallable(const Model::AddTagsToCertificateRequest& request) const; 210 211 /** 212 * <p>Adds one or more tags to an ACM certificate. Tags are labels that you can use 213 * to identify and organize your Amazon Web Services resources. Each tag consists 214 * of a <code>key</code> and an optional <code>value</code>. You specify the 215 * certificate on input by its Amazon Resource Name (ARN). You specify the tag by 216 * using a key-value pair. </p> <p>You can apply a tag to just one certificate if 217 * you want to identify a specific characteristic of that certificate, or you can 218 * apply the same tag to multiple certificates if you want to filter for a common 219 * relationship among those certificates. Similarly, you can apply the same tag to 220 * multiple resources if you want to specify a relationship among those resources. 221 * For example, you can add the same tag to an ACM certificate and an Elastic Load 222 * Balancing load balancer to indicate that they are both used by the same website. 223 * For more information, see <a 224 * href="https://docs.aws.amazon.com/acm/latest/userguide/tags.html">Tagging ACM 225 * certificates</a>. </p> <p>To remove one or more tags, use the 226 * <a>RemoveTagsFromCertificate</a> action. To view all of the tags that have been 227 * applied to the certificate, use the <a>ListTagsForCertificate</a> action. 228 * </p><p><h3>See Also:</h3> <a 229 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/AddTagsToCertificate">AWS 230 * API Reference</a></p> 231 * 232 * Queues the request into a thread executor and triggers associated callback when operation has finished. 233 */ 234 virtual void AddTagsToCertificateAsync(const Model::AddTagsToCertificateRequest& request, const AddTagsToCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 235 236 /** 237 * <p>Deletes a certificate and its associated private key. If this action 238 * succeeds, the certificate no longer appears in the list that can be displayed by 239 * calling the <a>ListCertificates</a> action or be retrieved by calling the 240 * <a>GetCertificate</a> action. The certificate will not be available for use by 241 * Amazon Web Services services integrated with ACM. </p> <p>You cannot 242 * delete an ACM certificate that is being used by another Amazon Web Services 243 * service. To delete a certificate that is in use, the certificate association 244 * must first be removed.</p> <p><h3>See Also:</h3> <a 245 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DeleteCertificate">AWS 246 * API Reference</a></p> 247 */ 248 virtual Model::DeleteCertificateOutcome DeleteCertificate(const Model::DeleteCertificateRequest& request) const; 249 250 /** 251 * <p>Deletes a certificate and its associated private key. If this action 252 * succeeds, the certificate no longer appears in the list that can be displayed by 253 * calling the <a>ListCertificates</a> action or be retrieved by calling the 254 * <a>GetCertificate</a> action. The certificate will not be available for use by 255 * Amazon Web Services services integrated with ACM. </p> <p>You cannot 256 * delete an ACM certificate that is being used by another Amazon Web Services 257 * service. To delete a certificate that is in use, the certificate association 258 * must first be removed.</p> <p><h3>See Also:</h3> <a 259 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DeleteCertificate">AWS 260 * API Reference</a></p> 261 * 262 * returns a future to the operation so that it can be executed in parallel to other requests. 263 */ 264 virtual Model::DeleteCertificateOutcomeCallable DeleteCertificateCallable(const Model::DeleteCertificateRequest& request) const; 265 266 /** 267 * <p>Deletes a certificate and its associated private key. If this action 268 * succeeds, the certificate no longer appears in the list that can be displayed by 269 * calling the <a>ListCertificates</a> action or be retrieved by calling the 270 * <a>GetCertificate</a> action. The certificate will not be available for use by 271 * Amazon Web Services services integrated with ACM. </p> <p>You cannot 272 * delete an ACM certificate that is being used by another Amazon Web Services 273 * service. To delete a certificate that is in use, the certificate association 274 * must first be removed.</p> <p><h3>See Also:</h3> <a 275 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DeleteCertificate">AWS 276 * API Reference</a></p> 277 * 278 * Queues the request into a thread executor and triggers associated callback when operation has finished. 279 */ 280 virtual void DeleteCertificateAsync(const Model::DeleteCertificateRequest& request, const DeleteCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 281 282 /** 283 * <p>Returns detailed metadata about the specified ACM certificate.</p><p><h3>See 284 * Also:</h3> <a 285 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DescribeCertificate">AWS 286 * API Reference</a></p> 287 */ 288 virtual Model::DescribeCertificateOutcome DescribeCertificate(const Model::DescribeCertificateRequest& request) const; 289 290 /** 291 * <p>Returns detailed metadata about the specified ACM certificate.</p><p><h3>See 292 * Also:</h3> <a 293 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DescribeCertificate">AWS 294 * API Reference</a></p> 295 * 296 * returns a future to the operation so that it can be executed in parallel to other requests. 297 */ 298 virtual Model::DescribeCertificateOutcomeCallable DescribeCertificateCallable(const Model::DescribeCertificateRequest& request) const; 299 300 /** 301 * <p>Returns detailed metadata about the specified ACM certificate.</p><p><h3>See 302 * Also:</h3> <a 303 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DescribeCertificate">AWS 304 * API Reference</a></p> 305 * 306 * Queues the request into a thread executor and triggers associated callback when operation has finished. 307 */ 308 virtual void DescribeCertificateAsync(const Model::DescribeCertificateRequest& request, const DescribeCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 309 310 /** 311 * <p>Exports a private certificate issued by a private certificate authority (CA) 312 * for use anywhere. The exported file contains the certificate, the certificate 313 * chain, and the encrypted private 2048-bit RSA key associated with the public key 314 * that is embedded in the certificate. For security, you must assign a passphrase 315 * for the private key when exporting it. </p> <p>For information about exporting 316 * and formatting a certificate using the ACM console or CLI, see <a 317 * href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-export-private.html">Export 318 * a Private Certificate</a>.</p><p><h3>See Also:</h3> <a 319 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ExportCertificate">AWS 320 * API Reference</a></p> 321 */ 322 virtual Model::ExportCertificateOutcome ExportCertificate(const Model::ExportCertificateRequest& request) const; 323 324 /** 325 * <p>Exports a private certificate issued by a private certificate authority (CA) 326 * for use anywhere. The exported file contains the certificate, the certificate 327 * chain, and the encrypted private 2048-bit RSA key associated with the public key 328 * that is embedded in the certificate. For security, you must assign a passphrase 329 * for the private key when exporting it. </p> <p>For information about exporting 330 * and formatting a certificate using the ACM console or CLI, see <a 331 * href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-export-private.html">Export 332 * a Private Certificate</a>.</p><p><h3>See Also:</h3> <a 333 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ExportCertificate">AWS 334 * API Reference</a></p> 335 * 336 * returns a future to the operation so that it can be executed in parallel to other requests. 337 */ 338 virtual Model::ExportCertificateOutcomeCallable ExportCertificateCallable(const Model::ExportCertificateRequest& request) const; 339 340 /** 341 * <p>Exports a private certificate issued by a private certificate authority (CA) 342 * for use anywhere. The exported file contains the certificate, the certificate 343 * chain, and the encrypted private 2048-bit RSA key associated with the public key 344 * that is embedded in the certificate. For security, you must assign a passphrase 345 * for the private key when exporting it. </p> <p>For information about exporting 346 * and formatting a certificate using the ACM console or CLI, see <a 347 * href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-export-private.html">Export 348 * a Private Certificate</a>.</p><p><h3>See Also:</h3> <a 349 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ExportCertificate">AWS 350 * API Reference</a></p> 351 * 352 * Queues the request into a thread executor and triggers associated callback when operation has finished. 353 */ 354 virtual void ExportCertificateAsync(const Model::ExportCertificateRequest& request, const ExportCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 355 356 /** 357 * <p>Returns the account configuration options associated with an Amazon Web 358 * Services account.</p><p><h3>See Also:</h3> <a 359 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/GetAccountConfiguration">AWS 360 * API Reference</a></p> 361 */ 362 virtual Model::GetAccountConfigurationOutcome GetAccountConfiguration() const; 363 364 /** 365 * <p>Returns the account configuration options associated with an Amazon Web 366 * Services account.</p><p><h3>See Also:</h3> <a 367 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/GetAccountConfiguration">AWS 368 * API Reference</a></p> 369 * 370 * returns a future to the operation so that it can be executed in parallel to other requests. 371 */ 372 virtual Model::GetAccountConfigurationOutcomeCallable GetAccountConfigurationCallable() const; 373 374 /** 375 * <p>Returns the account configuration options associated with an Amazon Web 376 * Services account.</p><p><h3>See Also:</h3> <a 377 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/GetAccountConfiguration">AWS 378 * API Reference</a></p> 379 * 380 * Queues the request into a thread executor and triggers associated callback when operation has finished. 381 */ 382 virtual void GetAccountConfigurationAsync(const GetAccountConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 383 /** 384 * <p>Retrieves an Amazon-issued certificate and its certificate chain. The chain 385 * consists of the certificate of the issuing CA and the intermediate certificates 386 * of any other subordinate CAs. All of the certificates are base64 encoded. You 387 * can use <a 388 * href="https://wiki.openssl.org/index.php/Command_Line_Utilities">OpenSSL</a> to 389 * decode the certificates and inspect individual fields.</p><p><h3>See Also:</h3> 390 * <a 391 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/GetCertificate">AWS 392 * API Reference</a></p> 393 */ 394 virtual Model::GetCertificateOutcome GetCertificate(const Model::GetCertificateRequest& request) const; 395 396 /** 397 * <p>Retrieves an Amazon-issued certificate and its certificate chain. The chain 398 * consists of the certificate of the issuing CA and the intermediate certificates 399 * of any other subordinate CAs. All of the certificates are base64 encoded. You 400 * can use <a 401 * href="https://wiki.openssl.org/index.php/Command_Line_Utilities">OpenSSL</a> to 402 * decode the certificates and inspect individual fields.</p><p><h3>See Also:</h3> 403 * <a 404 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/GetCertificate">AWS 405 * API Reference</a></p> 406 * 407 * returns a future to the operation so that it can be executed in parallel to other requests. 408 */ 409 virtual Model::GetCertificateOutcomeCallable GetCertificateCallable(const Model::GetCertificateRequest& request) const; 410 411 /** 412 * <p>Retrieves an Amazon-issued certificate and its certificate chain. The chain 413 * consists of the certificate of the issuing CA and the intermediate certificates 414 * of any other subordinate CAs. All of the certificates are base64 encoded. You 415 * can use <a 416 * href="https://wiki.openssl.org/index.php/Command_Line_Utilities">OpenSSL</a> to 417 * decode the certificates and inspect individual fields.</p><p><h3>See Also:</h3> 418 * <a 419 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/GetCertificate">AWS 420 * API Reference</a></p> 421 * 422 * Queues the request into a thread executor and triggers associated callback when operation has finished. 423 */ 424 virtual void GetCertificateAsync(const Model::GetCertificateRequest& request, const GetCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 425 426 /** 427 * <p>Imports a certificate into Amazon Web Services Certificate Manager (ACM) to 428 * use with services that are integrated with ACM. Note that <a 429 * href="https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html">integrated 430 * services</a> allow only certificate types and keys they support to be associated 431 * with their resources. Further, their support differs depending on whether the 432 * certificate is imported into IAM or into ACM. For more information, see the 433 * documentation for each service. For more information about importing 434 * certificates into ACM, see <a 435 * href="https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html">Importing 436 * Certificates</a> in the <i>Amazon Web Services Certificate Manager User 437 * Guide</i>. </p> <p>ACM does not provide <a 438 * href="https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html">managed 439 * renewal</a> for certificates that you import.</p> <p>Note the following 440 * guidelines when importing third party certificates:</p> <ul> <li> <p>You must 441 * enter the private key that matches the certificate you are importing.</p> </li> 442 * <li> <p>The private key must be unencrypted. You cannot import a private key 443 * that is protected by a password or a passphrase.</p> </li> <li> <p>The private 444 * key must be no larger than 5 KB (5,120 bytes).</p> </li> <li> <p>If the 445 * certificate you are importing is not self-signed, you must enter its certificate 446 * chain.</p> </li> <li> <p>If a certificate chain is included, the issuer must be 447 * the subject of one of the certificates in the chain.</p> </li> <li> <p>The 448 * certificate, private key, and certificate chain must be PEM-encoded.</p> </li> 449 * <li> <p>The current time must be between the <code>Not Before</code> and 450 * <code>Not After</code> certificate fields.</p> </li> <li> <p>The 451 * <code>Issuer</code> field must not be empty.</p> </li> <li> <p>The OCSP 452 * authority URL, if present, must not exceed 1000 characters.</p> </li> <li> <p>To 453 * import a new certificate, omit the <code>CertificateArn</code> argument. Include 454 * this argument only when you want to replace a previously imported 455 * certificate.</p> </li> <li> <p>When you import a certificate by using the CLI, 456 * you must specify the certificate, the certificate chain, and the private key by 457 * their file names preceded by <code>fileb://</code>. For example, you can specify 458 * a certificate saved in the <code>C:\temp</code> folder as 459 * <code>fileb://C:\temp\certificate_to_import.pem</code>. If you are making an 460 * HTTP or HTTPS Query request, include these arguments as BLOBs. </p> </li> <li> 461 * <p>When you import a certificate by using an SDK, you must specify the 462 * certificate, the certificate chain, and the private key files in the manner 463 * required by the programming language you're using. </p> </li> <li> <p>The 464 * cryptographic algorithm of an imported certificate must match the algorithm of 465 * the signing CA. For example, if the signing CA key type is RSA, then the 466 * certificate key type must also be RSA.</p> </li> </ul> <p>This operation returns 467 * the <a 468 * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon 469 * Resource Name (ARN)</a> of the imported certificate.</p><p><h3>See Also:</h3> 470 * <a 471 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ImportCertificate">AWS 472 * API Reference</a></p> 473 */ 474 virtual Model::ImportCertificateOutcome ImportCertificate(const Model::ImportCertificateRequest& request) const; 475 476 /** 477 * <p>Imports a certificate into Amazon Web Services Certificate Manager (ACM) to 478 * use with services that are integrated with ACM. Note that <a 479 * href="https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html">integrated 480 * services</a> allow only certificate types and keys they support to be associated 481 * with their resources. Further, their support differs depending on whether the 482 * certificate is imported into IAM or into ACM. For more information, see the 483 * documentation for each service. For more information about importing 484 * certificates into ACM, see <a 485 * href="https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html">Importing 486 * Certificates</a> in the <i>Amazon Web Services Certificate Manager User 487 * Guide</i>. </p> <p>ACM does not provide <a 488 * href="https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html">managed 489 * renewal</a> for certificates that you import.</p> <p>Note the following 490 * guidelines when importing third party certificates:</p> <ul> <li> <p>You must 491 * enter the private key that matches the certificate you are importing.</p> </li> 492 * <li> <p>The private key must be unencrypted. You cannot import a private key 493 * that is protected by a password or a passphrase.</p> </li> <li> <p>The private 494 * key must be no larger than 5 KB (5,120 bytes).</p> </li> <li> <p>If the 495 * certificate you are importing is not self-signed, you must enter its certificate 496 * chain.</p> </li> <li> <p>If a certificate chain is included, the issuer must be 497 * the subject of one of the certificates in the chain.</p> </li> <li> <p>The 498 * certificate, private key, and certificate chain must be PEM-encoded.</p> </li> 499 * <li> <p>The current time must be between the <code>Not Before</code> and 500 * <code>Not After</code> certificate fields.</p> </li> <li> <p>The 501 * <code>Issuer</code> field must not be empty.</p> </li> <li> <p>The OCSP 502 * authority URL, if present, must not exceed 1000 characters.</p> </li> <li> <p>To 503 * import a new certificate, omit the <code>CertificateArn</code> argument. Include 504 * this argument only when you want to replace a previously imported 505 * certificate.</p> </li> <li> <p>When you import a certificate by using the CLI, 506 * you must specify the certificate, the certificate chain, and the private key by 507 * their file names preceded by <code>fileb://</code>. For example, you can specify 508 * a certificate saved in the <code>C:\temp</code> folder as 509 * <code>fileb://C:\temp\certificate_to_import.pem</code>. If you are making an 510 * HTTP or HTTPS Query request, include these arguments as BLOBs. </p> </li> <li> 511 * <p>When you import a certificate by using an SDK, you must specify the 512 * certificate, the certificate chain, and the private key files in the manner 513 * required by the programming language you're using. </p> </li> <li> <p>The 514 * cryptographic algorithm of an imported certificate must match the algorithm of 515 * the signing CA. For example, if the signing CA key type is RSA, then the 516 * certificate key type must also be RSA.</p> </li> </ul> <p>This operation returns 517 * the <a 518 * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon 519 * Resource Name (ARN)</a> of the imported certificate.</p><p><h3>See Also:</h3> 520 * <a 521 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ImportCertificate">AWS 522 * API Reference</a></p> 523 * 524 * returns a future to the operation so that it can be executed in parallel to other requests. 525 */ 526 virtual Model::ImportCertificateOutcomeCallable ImportCertificateCallable(const Model::ImportCertificateRequest& request) const; 527 528 /** 529 * <p>Imports a certificate into Amazon Web Services Certificate Manager (ACM) to 530 * use with services that are integrated with ACM. Note that <a 531 * href="https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html">integrated 532 * services</a> allow only certificate types and keys they support to be associated 533 * with their resources. Further, their support differs depending on whether the 534 * certificate is imported into IAM or into ACM. For more information, see the 535 * documentation for each service. For more information about importing 536 * certificates into ACM, see <a 537 * href="https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html">Importing 538 * Certificates</a> in the <i>Amazon Web Services Certificate Manager User 539 * Guide</i>. </p> <p>ACM does not provide <a 540 * href="https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html">managed 541 * renewal</a> for certificates that you import.</p> <p>Note the following 542 * guidelines when importing third party certificates:</p> <ul> <li> <p>You must 543 * enter the private key that matches the certificate you are importing.</p> </li> 544 * <li> <p>The private key must be unencrypted. You cannot import a private key 545 * that is protected by a password or a passphrase.</p> </li> <li> <p>The private 546 * key must be no larger than 5 KB (5,120 bytes).</p> </li> <li> <p>If the 547 * certificate you are importing is not self-signed, you must enter its certificate 548 * chain.</p> </li> <li> <p>If a certificate chain is included, the issuer must be 549 * the subject of one of the certificates in the chain.</p> </li> <li> <p>The 550 * certificate, private key, and certificate chain must be PEM-encoded.</p> </li> 551 * <li> <p>The current time must be between the <code>Not Before</code> and 552 * <code>Not After</code> certificate fields.</p> </li> <li> <p>The 553 * <code>Issuer</code> field must not be empty.</p> </li> <li> <p>The OCSP 554 * authority URL, if present, must not exceed 1000 characters.</p> </li> <li> <p>To 555 * import a new certificate, omit the <code>CertificateArn</code> argument. Include 556 * this argument only when you want to replace a previously imported 557 * certificate.</p> </li> <li> <p>When you import a certificate by using the CLI, 558 * you must specify the certificate, the certificate chain, and the private key by 559 * their file names preceded by <code>fileb://</code>. For example, you can specify 560 * a certificate saved in the <code>C:\temp</code> folder as 561 * <code>fileb://C:\temp\certificate_to_import.pem</code>. If you are making an 562 * HTTP or HTTPS Query request, include these arguments as BLOBs. </p> </li> <li> 563 * <p>When you import a certificate by using an SDK, you must specify the 564 * certificate, the certificate chain, and the private key files in the manner 565 * required by the programming language you're using. </p> </li> <li> <p>The 566 * cryptographic algorithm of an imported certificate must match the algorithm of 567 * the signing CA. For example, if the signing CA key type is RSA, then the 568 * certificate key type must also be RSA.</p> </li> </ul> <p>This operation returns 569 * the <a 570 * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon 571 * Resource Name (ARN)</a> of the imported certificate.</p><p><h3>See Also:</h3> 572 * <a 573 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ImportCertificate">AWS 574 * API Reference</a></p> 575 * 576 * Queues the request into a thread executor and triggers associated callback when operation has finished. 577 */ 578 virtual void ImportCertificateAsync(const Model::ImportCertificateRequest& request, const ImportCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 579 580 /** 581 * <p>Retrieves a list of certificate ARNs and domain names. You can request that 582 * only certificates that match a specific status be listed. You can also filter by 583 * specific attributes of the certificate. Default filtering returns only 584 * <code>RSA_2048</code> certificates. For more information, see 585 * <a>Filters</a>.</p><p><h3>See Also:</h3> <a 586 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListCertificates">AWS 587 * API Reference</a></p> 588 */ 589 virtual Model::ListCertificatesOutcome ListCertificates(const Model::ListCertificatesRequest& request) const; 590 591 /** 592 * <p>Retrieves a list of certificate ARNs and domain names. You can request that 593 * only certificates that match a specific status be listed. You can also filter by 594 * specific attributes of the certificate. Default filtering returns only 595 * <code>RSA_2048</code> certificates. For more information, see 596 * <a>Filters</a>.</p><p><h3>See Also:</h3> <a 597 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListCertificates">AWS 598 * API Reference</a></p> 599 * 600 * returns a future to the operation so that it can be executed in parallel to other requests. 601 */ 602 virtual Model::ListCertificatesOutcomeCallable ListCertificatesCallable(const Model::ListCertificatesRequest& request) const; 603 604 /** 605 * <p>Retrieves a list of certificate ARNs and domain names. You can request that 606 * only certificates that match a specific status be listed. You can also filter by 607 * specific attributes of the certificate. Default filtering returns only 608 * <code>RSA_2048</code> certificates. For more information, see 609 * <a>Filters</a>.</p><p><h3>See Also:</h3> <a 610 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListCertificates">AWS 611 * API Reference</a></p> 612 * 613 * Queues the request into a thread executor and triggers associated callback when operation has finished. 614 */ 615 virtual void ListCertificatesAsync(const Model::ListCertificatesRequest& request, const ListCertificatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 616 617 /** 618 * <p>Lists the tags that have been applied to the ACM certificate. Use the 619 * certificate's Amazon Resource Name (ARN) to specify the certificate. To add a 620 * tag to an ACM certificate, use the <a>AddTagsToCertificate</a> action. To delete 621 * a tag, use the <a>RemoveTagsFromCertificate</a> action. </p><p><h3>See 622 * Also:</h3> <a 623 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListTagsForCertificate">AWS 624 * API Reference</a></p> 625 */ 626 virtual Model::ListTagsForCertificateOutcome ListTagsForCertificate(const Model::ListTagsForCertificateRequest& request) const; 627 628 /** 629 * <p>Lists the tags that have been applied to the ACM certificate. Use the 630 * certificate's Amazon Resource Name (ARN) to specify the certificate. To add a 631 * tag to an ACM certificate, use the <a>AddTagsToCertificate</a> action. To delete 632 * a tag, use the <a>RemoveTagsFromCertificate</a> action. </p><p><h3>See 633 * Also:</h3> <a 634 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListTagsForCertificate">AWS 635 * API Reference</a></p> 636 * 637 * returns a future to the operation so that it can be executed in parallel to other requests. 638 */ 639 virtual Model::ListTagsForCertificateOutcomeCallable ListTagsForCertificateCallable(const Model::ListTagsForCertificateRequest& request) const; 640 641 /** 642 * <p>Lists the tags that have been applied to the ACM certificate. Use the 643 * certificate's Amazon Resource Name (ARN) to specify the certificate. To add a 644 * tag to an ACM certificate, use the <a>AddTagsToCertificate</a> action. To delete 645 * a tag, use the <a>RemoveTagsFromCertificate</a> action. </p><p><h3>See 646 * Also:</h3> <a 647 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListTagsForCertificate">AWS 648 * API Reference</a></p> 649 * 650 * Queues the request into a thread executor and triggers associated callback when operation has finished. 651 */ 652 virtual void ListTagsForCertificateAsync(const Model::ListTagsForCertificateRequest& request, const ListTagsForCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 653 654 /** 655 * <p>Adds or modifies account-level configurations in ACM. </p> <p>The supported 656 * configuration option is <code>DaysBeforeExpiry</code>. This option specifies the 657 * number of days prior to certificate expiration when ACM starts generating 658 * <code>EventBridge</code> events. ACM sends one event per day per certificate 659 * until the certificate expires. By default, accounts receive events starting 45 660 * days before certificate expiration.</p><p><h3>See Also:</h3> <a 661 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/PutAccountConfiguration">AWS 662 * API Reference</a></p> 663 */ 664 virtual Model::PutAccountConfigurationOutcome PutAccountConfiguration(const Model::PutAccountConfigurationRequest& request) const; 665 666 /** 667 * <p>Adds or modifies account-level configurations in ACM. </p> <p>The supported 668 * configuration option is <code>DaysBeforeExpiry</code>. This option specifies the 669 * number of days prior to certificate expiration when ACM starts generating 670 * <code>EventBridge</code> events. ACM sends one event per day per certificate 671 * until the certificate expires. By default, accounts receive events starting 45 672 * days before certificate expiration.</p><p><h3>See Also:</h3> <a 673 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/PutAccountConfiguration">AWS 674 * API Reference</a></p> 675 * 676 * returns a future to the operation so that it can be executed in parallel to other requests. 677 */ 678 virtual Model::PutAccountConfigurationOutcomeCallable PutAccountConfigurationCallable(const Model::PutAccountConfigurationRequest& request) const; 679 680 /** 681 * <p>Adds or modifies account-level configurations in ACM. </p> <p>The supported 682 * configuration option is <code>DaysBeforeExpiry</code>. This option specifies the 683 * number of days prior to certificate expiration when ACM starts generating 684 * <code>EventBridge</code> events. ACM sends one event per day per certificate 685 * until the certificate expires. By default, accounts receive events starting 45 686 * days before certificate expiration.</p><p><h3>See Also:</h3> <a 687 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/PutAccountConfiguration">AWS 688 * API Reference</a></p> 689 * 690 * Queues the request into a thread executor and triggers associated callback when operation has finished. 691 */ 692 virtual void PutAccountConfigurationAsync(const Model::PutAccountConfigurationRequest& request, const PutAccountConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 693 694 /** 695 * <p>Remove one or more tags from an ACM certificate. A tag consists of a 696 * key-value pair. If you do not specify the value portion of the tag when calling 697 * this function, the tag will be removed regardless of value. If you specify a 698 * value, the tag is removed only if it is associated with the specified value. 699 * </p> <p>To add tags to a certificate, use the <a>AddTagsToCertificate</a> 700 * action. To view all of the tags that have been applied to a specific ACM 701 * certificate, use the <a>ListTagsForCertificate</a> action. </p><p><h3>See 702 * Also:</h3> <a 703 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RemoveTagsFromCertificate">AWS 704 * API Reference</a></p> 705 */ 706 virtual Model::RemoveTagsFromCertificateOutcome RemoveTagsFromCertificate(const Model::RemoveTagsFromCertificateRequest& request) const; 707 708 /** 709 * <p>Remove one or more tags from an ACM certificate. A tag consists of a 710 * key-value pair. If you do not specify the value portion of the tag when calling 711 * this function, the tag will be removed regardless of value. If you specify a 712 * value, the tag is removed only if it is associated with the specified value. 713 * </p> <p>To add tags to a certificate, use the <a>AddTagsToCertificate</a> 714 * action. To view all of the tags that have been applied to a specific ACM 715 * certificate, use the <a>ListTagsForCertificate</a> action. </p><p><h3>See 716 * Also:</h3> <a 717 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RemoveTagsFromCertificate">AWS 718 * API Reference</a></p> 719 * 720 * returns a future to the operation so that it can be executed in parallel to other requests. 721 */ 722 virtual Model::RemoveTagsFromCertificateOutcomeCallable RemoveTagsFromCertificateCallable(const Model::RemoveTagsFromCertificateRequest& request) const; 723 724 /** 725 * <p>Remove one or more tags from an ACM certificate. A tag consists of a 726 * key-value pair. If you do not specify the value portion of the tag when calling 727 * this function, the tag will be removed regardless of value. If you specify a 728 * value, the tag is removed only if it is associated with the specified value. 729 * </p> <p>To add tags to a certificate, use the <a>AddTagsToCertificate</a> 730 * action. To view all of the tags that have been applied to a specific ACM 731 * certificate, use the <a>ListTagsForCertificate</a> action. </p><p><h3>See 732 * Also:</h3> <a 733 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RemoveTagsFromCertificate">AWS 734 * API Reference</a></p> 735 * 736 * Queues the request into a thread executor and triggers associated callback when operation has finished. 737 */ 738 virtual void RemoveTagsFromCertificateAsync(const Model::RemoveTagsFromCertificateRequest& request, const RemoveTagsFromCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 739 740 /** 741 * <p>Renews an eligible ACM certificate. At this time, only exported private 742 * certificates can be renewed with this operation. In order to renew your ACM PCA 743 * certificates with ACM, you must first <a 744 * href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaPermissions.html">grant 745 * the ACM service principal permission to do so</a>. For more information, see <a 746 * href="https://docs.aws.amazon.com/acm/latest/userguide/manual-renewal.html">Testing 747 * Managed Renewal</a> in the ACM User Guide.</p><p><h3>See Also:</h3> <a 748 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RenewCertificate">AWS 749 * API Reference</a></p> 750 */ 751 virtual Model::RenewCertificateOutcome RenewCertificate(const Model::RenewCertificateRequest& request) const; 752 753 /** 754 * <p>Renews an eligible ACM certificate. At this time, only exported private 755 * certificates can be renewed with this operation. In order to renew your ACM PCA 756 * certificates with ACM, you must first <a 757 * href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaPermissions.html">grant 758 * the ACM service principal permission to do so</a>. For more information, see <a 759 * href="https://docs.aws.amazon.com/acm/latest/userguide/manual-renewal.html">Testing 760 * Managed Renewal</a> in the ACM User Guide.</p><p><h3>See Also:</h3> <a 761 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RenewCertificate">AWS 762 * API Reference</a></p> 763 * 764 * returns a future to the operation so that it can be executed in parallel to other requests. 765 */ 766 virtual Model::RenewCertificateOutcomeCallable RenewCertificateCallable(const Model::RenewCertificateRequest& request) const; 767 768 /** 769 * <p>Renews an eligible ACM certificate. At this time, only exported private 770 * certificates can be renewed with this operation. In order to renew your ACM PCA 771 * certificates with ACM, you must first <a 772 * href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaPermissions.html">grant 773 * the ACM service principal permission to do so</a>. For more information, see <a 774 * href="https://docs.aws.amazon.com/acm/latest/userguide/manual-renewal.html">Testing 775 * Managed Renewal</a> in the ACM User Guide.</p><p><h3>See Also:</h3> <a 776 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RenewCertificate">AWS 777 * API Reference</a></p> 778 * 779 * Queues the request into a thread executor and triggers associated callback when operation has finished. 780 */ 781 virtual void RenewCertificateAsync(const Model::RenewCertificateRequest& request, const RenewCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 782 783 /** 784 * <p>Requests an ACM certificate for use with other Amazon Web Services services. 785 * To request an ACM certificate, you must specify a fully qualified domain name 786 * (FQDN) in the <code>DomainName</code> parameter. You can also specify additional 787 * FQDNs in the <code>SubjectAlternativeNames</code> parameter. </p> <p>If you are 788 * requesting a private certificate, domain validation is not required. If you are 789 * requesting a public certificate, each domain name that you specify must be 790 * validated to verify that you own or control the domain. You can use <a 791 * href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html">DNS 792 * validation</a> or <a 793 * href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html">email 794 * validation</a>. We recommend that you use DNS validation. ACM issues public 795 * certificates after receiving approval from the domain owner. </p> <p>ACM 796 * behavior differs from the <a 797 * href="https://tools.ietf.org/html/rfc6125#appendix-B.2">https://tools.ietf.org/html/rfc6125#appendix-B.2</a>RFC 798 * 6125 specification of the certificate validation process. first checks for a 799 * subject alternative name, and, if it finds one, ignores the common name (CN)</p> 800 * <p><h3>See Also:</h3> <a 801 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RequestCertificate">AWS 802 * API Reference</a></p> 803 */ 804 virtual Model::RequestCertificateOutcome RequestCertificate(const Model::RequestCertificateRequest& request) const; 805 806 /** 807 * <p>Requests an ACM certificate for use with other Amazon Web Services services. 808 * To request an ACM certificate, you must specify a fully qualified domain name 809 * (FQDN) in the <code>DomainName</code> parameter. You can also specify additional 810 * FQDNs in the <code>SubjectAlternativeNames</code> parameter. </p> <p>If you are 811 * requesting a private certificate, domain validation is not required. If you are 812 * requesting a public certificate, each domain name that you specify must be 813 * validated to verify that you own or control the domain. You can use <a 814 * href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html">DNS 815 * validation</a> or <a 816 * href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html">email 817 * validation</a>. We recommend that you use DNS validation. ACM issues public 818 * certificates after receiving approval from the domain owner. </p> <p>ACM 819 * behavior differs from the <a 820 * href="https://tools.ietf.org/html/rfc6125#appendix-B.2">https://tools.ietf.org/html/rfc6125#appendix-B.2</a>RFC 821 * 6125 specification of the certificate validation process. first checks for a 822 * subject alternative name, and, if it finds one, ignores the common name (CN)</p> 823 * <p><h3>See Also:</h3> <a 824 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RequestCertificate">AWS 825 * API Reference</a></p> 826 * 827 * returns a future to the operation so that it can be executed in parallel to other requests. 828 */ 829 virtual Model::RequestCertificateOutcomeCallable RequestCertificateCallable(const Model::RequestCertificateRequest& request) const; 830 831 /** 832 * <p>Requests an ACM certificate for use with other Amazon Web Services services. 833 * To request an ACM certificate, you must specify a fully qualified domain name 834 * (FQDN) in the <code>DomainName</code> parameter. You can also specify additional 835 * FQDNs in the <code>SubjectAlternativeNames</code> parameter. </p> <p>If you are 836 * requesting a private certificate, domain validation is not required. If you are 837 * requesting a public certificate, each domain name that you specify must be 838 * validated to verify that you own or control the domain. You can use <a 839 * href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html">DNS 840 * validation</a> or <a 841 * href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html">email 842 * validation</a>. We recommend that you use DNS validation. ACM issues public 843 * certificates after receiving approval from the domain owner. </p> <p>ACM 844 * behavior differs from the <a 845 * href="https://tools.ietf.org/html/rfc6125#appendix-B.2">https://tools.ietf.org/html/rfc6125#appendix-B.2</a>RFC 846 * 6125 specification of the certificate validation process. first checks for a 847 * subject alternative name, and, if it finds one, ignores the common name (CN)</p> 848 * <p><h3>See Also:</h3> <a 849 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RequestCertificate">AWS 850 * API Reference</a></p> 851 * 852 * Queues the request into a thread executor and triggers associated callback when operation has finished. 853 */ 854 virtual void RequestCertificateAsync(const Model::RequestCertificateRequest& request, const RequestCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 855 856 /** 857 * <p>Resends the email that requests domain ownership validation. The domain owner 858 * or an authorized representative must approve the ACM certificate before it can 859 * be issued. The certificate can be approved by clicking a link in the mail to 860 * navigate to the Amazon certificate approval website and then clicking <b>I 861 * Approve</b>. However, the validation email can be blocked by spam filters. 862 * Therefore, if you do not receive the original mail, you can request that the 863 * mail be resent within 72 hours of requesting the ACM certificate. If more than 864 * 72 hours have elapsed since your original request or since your last attempt to 865 * resend validation mail, you must request a new certificate. For more information 866 * about setting up your contact email addresses, see <a 867 * href="https://docs.aws.amazon.com/acm/latest/userguide/setup-email.html">Configure 868 * Email for your Domain</a>. </p><p><h3>See Also:</h3> <a 869 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ResendValidationEmail">AWS 870 * API Reference</a></p> 871 */ 872 virtual Model::ResendValidationEmailOutcome ResendValidationEmail(const Model::ResendValidationEmailRequest& request) const; 873 874 /** 875 * <p>Resends the email that requests domain ownership validation. The domain owner 876 * or an authorized representative must approve the ACM certificate before it can 877 * be issued. The certificate can be approved by clicking a link in the mail to 878 * navigate to the Amazon certificate approval website and then clicking <b>I 879 * Approve</b>. However, the validation email can be blocked by spam filters. 880 * Therefore, if you do not receive the original mail, you can request that the 881 * mail be resent within 72 hours of requesting the ACM certificate. If more than 882 * 72 hours have elapsed since your original request or since your last attempt to 883 * resend validation mail, you must request a new certificate. For more information 884 * about setting up your contact email addresses, see <a 885 * href="https://docs.aws.amazon.com/acm/latest/userguide/setup-email.html">Configure 886 * Email for your Domain</a>. </p><p><h3>See Also:</h3> <a 887 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ResendValidationEmail">AWS 888 * API Reference</a></p> 889 * 890 * returns a future to the operation so that it can be executed in parallel to other requests. 891 */ 892 virtual Model::ResendValidationEmailOutcomeCallable ResendValidationEmailCallable(const Model::ResendValidationEmailRequest& request) const; 893 894 /** 895 * <p>Resends the email that requests domain ownership validation. The domain owner 896 * or an authorized representative must approve the ACM certificate before it can 897 * be issued. The certificate can be approved by clicking a link in the mail to 898 * navigate to the Amazon certificate approval website and then clicking <b>I 899 * Approve</b>. However, the validation email can be blocked by spam filters. 900 * Therefore, if you do not receive the original mail, you can request that the 901 * mail be resent within 72 hours of requesting the ACM certificate. If more than 902 * 72 hours have elapsed since your original request or since your last attempt to 903 * resend validation mail, you must request a new certificate. For more information 904 * about setting up your contact email addresses, see <a 905 * href="https://docs.aws.amazon.com/acm/latest/userguide/setup-email.html">Configure 906 * Email for your Domain</a>. </p><p><h3>See Also:</h3> <a 907 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ResendValidationEmail">AWS 908 * API Reference</a></p> 909 * 910 * Queues the request into a thread executor and triggers associated callback when operation has finished. 911 */ 912 virtual void ResendValidationEmailAsync(const Model::ResendValidationEmailRequest& request, const ResendValidationEmailResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 913 914 /** 915 * <p>Updates a certificate. Currently, you can use this function to specify 916 * whether to opt in to or out of recording your certificate in a certificate 917 * transparency log. For more information, see <a 918 * href="https://docs.aws.amazon.com/acm/latest/userguide/acm-bestpractices.html#best-practices-transparency"> 919 * Opting Out of Certificate Transparency Logging</a>. </p><p><h3>See Also:</h3> 920 * <a 921 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/UpdateCertificateOptions">AWS 922 * API Reference</a></p> 923 */ 924 virtual Model::UpdateCertificateOptionsOutcome UpdateCertificateOptions(const Model::UpdateCertificateOptionsRequest& request) const; 925 926 /** 927 * <p>Updates a certificate. Currently, you can use this function to specify 928 * whether to opt in to or out of recording your certificate in a certificate 929 * transparency log. For more information, see <a 930 * href="https://docs.aws.amazon.com/acm/latest/userguide/acm-bestpractices.html#best-practices-transparency"> 931 * Opting Out of Certificate Transparency Logging</a>. </p><p><h3>See Also:</h3> 932 * <a 933 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/UpdateCertificateOptions">AWS 934 * API Reference</a></p> 935 * 936 * returns a future to the operation so that it can be executed in parallel to other requests. 937 */ 938 virtual Model::UpdateCertificateOptionsOutcomeCallable UpdateCertificateOptionsCallable(const Model::UpdateCertificateOptionsRequest& request) const; 939 940 /** 941 * <p>Updates a certificate. Currently, you can use this function to specify 942 * whether to opt in to or out of recording your certificate in a certificate 943 * transparency log. For more information, see <a 944 * href="https://docs.aws.amazon.com/acm/latest/userguide/acm-bestpractices.html#best-practices-transparency"> 945 * Opting Out of Certificate Transparency Logging</a>. </p><p><h3>See Also:</h3> 946 * <a 947 * href="http://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/UpdateCertificateOptions">AWS 948 * API Reference</a></p> 949 * 950 * Queues the request into a thread executor and triggers associated callback when operation has finished. 951 */ 952 virtual void UpdateCertificateOptionsAsync(const Model::UpdateCertificateOptionsRequest& request, const UpdateCertificateOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 953 954 955 void OverrideEndpoint(const Aws::String& endpoint); 956 private: 957 void init(const Aws::Client::ClientConfiguration& clientConfiguration); 958 void AddTagsToCertificateAsyncHelper(const Model::AddTagsToCertificateRequest& request, const AddTagsToCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 959 void DeleteCertificateAsyncHelper(const Model::DeleteCertificateRequest& request, const DeleteCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 960 void DescribeCertificateAsyncHelper(const Model::DescribeCertificateRequest& request, const DescribeCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 961 void ExportCertificateAsyncHelper(const Model::ExportCertificateRequest& request, const ExportCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 962 void GetAccountConfigurationAsyncHelper(const GetAccountConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 963 void GetCertificateAsyncHelper(const Model::GetCertificateRequest& request, const GetCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 964 void ImportCertificateAsyncHelper(const Model::ImportCertificateRequest& request, const ImportCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 965 void ListCertificatesAsyncHelper(const Model::ListCertificatesRequest& request, const ListCertificatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 966 void ListTagsForCertificateAsyncHelper(const Model::ListTagsForCertificateRequest& request, const ListTagsForCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 967 void PutAccountConfigurationAsyncHelper(const Model::PutAccountConfigurationRequest& request, const PutAccountConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 968 void RemoveTagsFromCertificateAsyncHelper(const Model::RemoveTagsFromCertificateRequest& request, const RemoveTagsFromCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 969 void RenewCertificateAsyncHelper(const Model::RenewCertificateRequest& request, const RenewCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 970 void RequestCertificateAsyncHelper(const Model::RequestCertificateRequest& request, const RequestCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 971 void ResendValidationEmailAsyncHelper(const Model::ResendValidationEmailRequest& request, const ResendValidationEmailResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 972 void UpdateCertificateOptionsAsyncHelper(const Model::UpdateCertificateOptionsRequest& request, const UpdateCertificateOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 973 974 Aws::String m_uri; 975 Aws::String m_configScheme; 976 std::shared_ptr<Aws::Utils::Threading::Executor> m_executor; 977 }; 978 979 } // namespace ACM 980 } // namespace Aws 981