/** * 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 namespace Aws { namespace ACM { namespace Model { /** */ class RequestCertificateRequest : public ACMRequest { public: AWS_ACM_API RequestCertificateRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "RequestCertificate"; } AWS_ACM_API Aws::String SerializePayload() const override; AWS_ACM_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

Fully qualified domain name (FQDN), such as www.example.com, that you want to * secure with an ACM certificate. Use an asterisk (*) to create a wildcard * certificate that protects several sites in the same domain. For example, * *.example.com protects www.example.com, site.example.com, and * images.example.com.

In compliance with RFC 5280, the length of * the domain name (technically, the Common Name) that you provide cannot exceed 64 * octets (characters), including periods. To add a longer domain name, specify it * in the Subject Alternative Name field, which supports names up to 253 octets in * length.

*/ inline const Aws::String& GetDomainName() const{ return m_domainName; } /** *

Fully qualified domain name (FQDN), such as www.example.com, that you want to * secure with an ACM certificate. Use an asterisk (*) to create a wildcard * certificate that protects several sites in the same domain. For example, * *.example.com protects www.example.com, site.example.com, and * images.example.com.

In compliance with RFC 5280, the length of * the domain name (technically, the Common Name) that you provide cannot exceed 64 * octets (characters), including periods. To add a longer domain name, specify it * in the Subject Alternative Name field, which supports names up to 253 octets in * length.

*/ inline bool DomainNameHasBeenSet() const { return m_domainNameHasBeenSet; } /** *

Fully qualified domain name (FQDN), such as www.example.com, that you want to * secure with an ACM certificate. Use an asterisk (*) to create a wildcard * certificate that protects several sites in the same domain. For example, * *.example.com protects www.example.com, site.example.com, and * images.example.com.

In compliance with RFC 5280, the length of * the domain name (technically, the Common Name) that you provide cannot exceed 64 * octets (characters), including periods. To add a longer domain name, specify it * in the Subject Alternative Name field, which supports names up to 253 octets in * length.

*/ inline void SetDomainName(const Aws::String& value) { m_domainNameHasBeenSet = true; m_domainName = value; } /** *

Fully qualified domain name (FQDN), such as www.example.com, that you want to * secure with an ACM certificate. Use an asterisk (*) to create a wildcard * certificate that protects several sites in the same domain. For example, * *.example.com protects www.example.com, site.example.com, and * images.example.com.

In compliance with RFC 5280, the length of * the domain name (technically, the Common Name) that you provide cannot exceed 64 * octets (characters), including periods. To add a longer domain name, specify it * in the Subject Alternative Name field, which supports names up to 253 octets in * length.

*/ inline void SetDomainName(Aws::String&& value) { m_domainNameHasBeenSet = true; m_domainName = std::move(value); } /** *

Fully qualified domain name (FQDN), such as www.example.com, that you want to * secure with an ACM certificate. Use an asterisk (*) to create a wildcard * certificate that protects several sites in the same domain. For example, * *.example.com protects www.example.com, site.example.com, and * images.example.com.

In compliance with RFC 5280, the length of * the domain name (technically, the Common Name) that you provide cannot exceed 64 * octets (characters), including periods. To add a longer domain name, specify it * in the Subject Alternative Name field, which supports names up to 253 octets in * length.

*/ inline void SetDomainName(const char* value) { m_domainNameHasBeenSet = true; m_domainName.assign(value); } /** *

Fully qualified domain name (FQDN), such as www.example.com, that you want to * secure with an ACM certificate. Use an asterisk (*) to create a wildcard * certificate that protects several sites in the same domain. For example, * *.example.com protects www.example.com, site.example.com, and * images.example.com.

In compliance with RFC 5280, the length of * the domain name (technically, the Common Name) that you provide cannot exceed 64 * octets (characters), including periods. To add a longer domain name, specify it * in the Subject Alternative Name field, which supports names up to 253 octets in * length.

*/ inline RequestCertificateRequest& WithDomainName(const Aws::String& value) { SetDomainName(value); return *this;} /** *

Fully qualified domain name (FQDN), such as www.example.com, that you want to * secure with an ACM certificate. Use an asterisk (*) to create a wildcard * certificate that protects several sites in the same domain. For example, * *.example.com protects www.example.com, site.example.com, and * images.example.com.

In compliance with RFC 5280, the length of * the domain name (technically, the Common Name) that you provide cannot exceed 64 * octets (characters), including periods. To add a longer domain name, specify it * in the Subject Alternative Name field, which supports names up to 253 octets in * length.

*/ inline RequestCertificateRequest& WithDomainName(Aws::String&& value) { SetDomainName(std::move(value)); return *this;} /** *

Fully qualified domain name (FQDN), such as www.example.com, that you want to * secure with an ACM certificate. Use an asterisk (*) to create a wildcard * certificate that protects several sites in the same domain. For example, * *.example.com protects www.example.com, site.example.com, and * images.example.com.

In compliance with RFC 5280, the length of * the domain name (technically, the Common Name) that you provide cannot exceed 64 * octets (characters), including periods. To add a longer domain name, specify it * in the Subject Alternative Name field, which supports names up to 253 octets in * length.

*/ inline RequestCertificateRequest& WithDomainName(const char* value) { SetDomainName(value); return *this;} /** *

The method you want to use if you are requesting a public certificate to * validate that you own or control domain. You can validate * with DNS or validate * with email. We recommend that you use DNS validation.

*/ inline const ValidationMethod& GetValidationMethod() const{ return m_validationMethod; } /** *

The method you want to use if you are requesting a public certificate to * validate that you own or control domain. You can validate * with DNS or validate * with email. We recommend that you use DNS validation.

*/ inline bool ValidationMethodHasBeenSet() const { return m_validationMethodHasBeenSet; } /** *

The method you want to use if you are requesting a public certificate to * validate that you own or control domain. You can validate * with DNS or validate * with email. We recommend that you use DNS validation.

*/ inline void SetValidationMethod(const ValidationMethod& value) { m_validationMethodHasBeenSet = true; m_validationMethod = value; } /** *

The method you want to use if you are requesting a public certificate to * validate that you own or control domain. You can validate * with DNS or validate * with email. We recommend that you use DNS validation.

*/ inline void SetValidationMethod(ValidationMethod&& value) { m_validationMethodHasBeenSet = true; m_validationMethod = std::move(value); } /** *

The method you want to use if you are requesting a public certificate to * validate that you own or control domain. You can validate * with DNS or validate * with email. We recommend that you use DNS validation.

*/ inline RequestCertificateRequest& WithValidationMethod(const ValidationMethod& value) { SetValidationMethod(value); return *this;} /** *

The method you want to use if you are requesting a public certificate to * validate that you own or control domain. You can validate * with DNS or validate * with email. We recommend that you use DNS validation.

*/ inline RequestCertificateRequest& WithValidationMethod(ValidationMethod&& value) { SetValidationMethod(std::move(value)); return *this;} /** *

Additional FQDNs to be included in the Subject Alternative Name extension of * the ACM certificate. For example, add the name www.example.net to a certificate * for which the DomainName field is www.example.com if users can * reach your site by using either name. The maximum number of domain names that * you can add to an ACM certificate is 100. However, the initial quota is 10 * domain names. If you need more than 10 names, you must request a quota increase. * For more information, see Quotas.

*

The maximum length of a SAN DNS name is 253 octets. The name is made up of * multiple labels separated by periods. No label can be longer than 63 octets. * Consider the following examples:

  • (63 octets).(63 * octets).(63 octets).(61 octets) is legal because the total length is 253 * octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.

  • * (64 octets).(63 octets).(63 octets).(61 octets) is not legal * because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first * label exceeds 63 octets.

  • (63 octets).(63 octets).(63 * octets).(62 octets) is not legal because the total length of the DNS name * (63+1+63+1+63+1+62) exceeds 253 octets.

*/ inline const Aws::Vector& GetSubjectAlternativeNames() const{ return m_subjectAlternativeNames; } /** *

Additional FQDNs to be included in the Subject Alternative Name extension of * the ACM certificate. For example, add the name www.example.net to a certificate * for which the DomainName field is www.example.com if users can * reach your site by using either name. The maximum number of domain names that * you can add to an ACM certificate is 100. However, the initial quota is 10 * domain names. If you need more than 10 names, you must request a quota increase. * For more information, see Quotas.

*

The maximum length of a SAN DNS name is 253 octets. The name is made up of * multiple labels separated by periods. No label can be longer than 63 octets. * Consider the following examples:

  • (63 octets).(63 * octets).(63 octets).(61 octets) is legal because the total length is 253 * octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.

  • * (64 octets).(63 octets).(63 octets).(61 octets) is not legal * because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first * label exceeds 63 octets.

  • (63 octets).(63 octets).(63 * octets).(62 octets) is not legal because the total length of the DNS name * (63+1+63+1+63+1+62) exceeds 253 octets.

*/ inline bool SubjectAlternativeNamesHasBeenSet() const { return m_subjectAlternativeNamesHasBeenSet; } /** *

Additional FQDNs to be included in the Subject Alternative Name extension of * the ACM certificate. For example, add the name www.example.net to a certificate * for which the DomainName field is www.example.com if users can * reach your site by using either name. The maximum number of domain names that * you can add to an ACM certificate is 100. However, the initial quota is 10 * domain names. If you need more than 10 names, you must request a quota increase. * For more information, see Quotas.

*

The maximum length of a SAN DNS name is 253 octets. The name is made up of * multiple labels separated by periods. No label can be longer than 63 octets. * Consider the following examples:

  • (63 octets).(63 * octets).(63 octets).(61 octets) is legal because the total length is 253 * octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.

  • * (64 octets).(63 octets).(63 octets).(61 octets) is not legal * because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first * label exceeds 63 octets.

  • (63 octets).(63 octets).(63 * octets).(62 octets) is not legal because the total length of the DNS name * (63+1+63+1+63+1+62) exceeds 253 octets.

*/ inline void SetSubjectAlternativeNames(const Aws::Vector& value) { m_subjectAlternativeNamesHasBeenSet = true; m_subjectAlternativeNames = value; } /** *

Additional FQDNs to be included in the Subject Alternative Name extension of * the ACM certificate. For example, add the name www.example.net to a certificate * for which the DomainName field is www.example.com if users can * reach your site by using either name. The maximum number of domain names that * you can add to an ACM certificate is 100. However, the initial quota is 10 * domain names. If you need more than 10 names, you must request a quota increase. * For more information, see Quotas.

*

The maximum length of a SAN DNS name is 253 octets. The name is made up of * multiple labels separated by periods. No label can be longer than 63 octets. * Consider the following examples:

  • (63 octets).(63 * octets).(63 octets).(61 octets) is legal because the total length is 253 * octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.

  • * (64 octets).(63 octets).(63 octets).(61 octets) is not legal * because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first * label exceeds 63 octets.

  • (63 octets).(63 octets).(63 * octets).(62 octets) is not legal because the total length of the DNS name * (63+1+63+1+63+1+62) exceeds 253 octets.

*/ inline void SetSubjectAlternativeNames(Aws::Vector&& value) { m_subjectAlternativeNamesHasBeenSet = true; m_subjectAlternativeNames = std::move(value); } /** *

Additional FQDNs to be included in the Subject Alternative Name extension of * the ACM certificate. For example, add the name www.example.net to a certificate * for which the DomainName field is www.example.com if users can * reach your site by using either name. The maximum number of domain names that * you can add to an ACM certificate is 100. However, the initial quota is 10 * domain names. If you need more than 10 names, you must request a quota increase. * For more information, see Quotas.

*

The maximum length of a SAN DNS name is 253 octets. The name is made up of * multiple labels separated by periods. No label can be longer than 63 octets. * Consider the following examples:

  • (63 octets).(63 * octets).(63 octets).(61 octets) is legal because the total length is 253 * octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.

  • * (64 octets).(63 octets).(63 octets).(61 octets) is not legal * because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first * label exceeds 63 octets.

  • (63 octets).(63 octets).(63 * octets).(62 octets) is not legal because the total length of the DNS name * (63+1+63+1+63+1+62) exceeds 253 octets.

*/ inline RequestCertificateRequest& WithSubjectAlternativeNames(const Aws::Vector& value) { SetSubjectAlternativeNames(value); return *this;} /** *

Additional FQDNs to be included in the Subject Alternative Name extension of * the ACM certificate. For example, add the name www.example.net to a certificate * for which the DomainName field is www.example.com if users can * reach your site by using either name. The maximum number of domain names that * you can add to an ACM certificate is 100. However, the initial quota is 10 * domain names. If you need more than 10 names, you must request a quota increase. * For more information, see Quotas.

*

The maximum length of a SAN DNS name is 253 octets. The name is made up of * multiple labels separated by periods. No label can be longer than 63 octets. * Consider the following examples:

  • (63 octets).(63 * octets).(63 octets).(61 octets) is legal because the total length is 253 * octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.

  • * (64 octets).(63 octets).(63 octets).(61 octets) is not legal * because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first * label exceeds 63 octets.

  • (63 octets).(63 octets).(63 * octets).(62 octets) is not legal because the total length of the DNS name * (63+1+63+1+63+1+62) exceeds 253 octets.

*/ inline RequestCertificateRequest& WithSubjectAlternativeNames(Aws::Vector&& value) { SetSubjectAlternativeNames(std::move(value)); return *this;} /** *

Additional FQDNs to be included in the Subject Alternative Name extension of * the ACM certificate. For example, add the name www.example.net to a certificate * for which the DomainName field is www.example.com if users can * reach your site by using either name. The maximum number of domain names that * you can add to an ACM certificate is 100. However, the initial quota is 10 * domain names. If you need more than 10 names, you must request a quota increase. * For more information, see Quotas.

*

The maximum length of a SAN DNS name is 253 octets. The name is made up of * multiple labels separated by periods. No label can be longer than 63 octets. * Consider the following examples:

  • (63 octets).(63 * octets).(63 octets).(61 octets) is legal because the total length is 253 * octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.

  • * (64 octets).(63 octets).(63 octets).(61 octets) is not legal * because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first * label exceeds 63 octets.

  • (63 octets).(63 octets).(63 * octets).(62 octets) is not legal because the total length of the DNS name * (63+1+63+1+63+1+62) exceeds 253 octets.

*/ inline RequestCertificateRequest& AddSubjectAlternativeNames(const Aws::String& value) { m_subjectAlternativeNamesHasBeenSet = true; m_subjectAlternativeNames.push_back(value); return *this; } /** *

Additional FQDNs to be included in the Subject Alternative Name extension of * the ACM certificate. For example, add the name www.example.net to a certificate * for which the DomainName field is www.example.com if users can * reach your site by using either name. The maximum number of domain names that * you can add to an ACM certificate is 100. However, the initial quota is 10 * domain names. If you need more than 10 names, you must request a quota increase. * For more information, see Quotas.

*

The maximum length of a SAN DNS name is 253 octets. The name is made up of * multiple labels separated by periods. No label can be longer than 63 octets. * Consider the following examples:

  • (63 octets).(63 * octets).(63 octets).(61 octets) is legal because the total length is 253 * octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.

  • * (64 octets).(63 octets).(63 octets).(61 octets) is not legal * because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first * label exceeds 63 octets.

  • (63 octets).(63 octets).(63 * octets).(62 octets) is not legal because the total length of the DNS name * (63+1+63+1+63+1+62) exceeds 253 octets.

*/ inline RequestCertificateRequest& AddSubjectAlternativeNames(Aws::String&& value) { m_subjectAlternativeNamesHasBeenSet = true; m_subjectAlternativeNames.push_back(std::move(value)); return *this; } /** *

Additional FQDNs to be included in the Subject Alternative Name extension of * the ACM certificate. For example, add the name www.example.net to a certificate * for which the DomainName field is www.example.com if users can * reach your site by using either name. The maximum number of domain names that * you can add to an ACM certificate is 100. However, the initial quota is 10 * domain names. If you need more than 10 names, you must request a quota increase. * For more information, see Quotas.

*

The maximum length of a SAN DNS name is 253 octets. The name is made up of * multiple labels separated by periods. No label can be longer than 63 octets. * Consider the following examples:

  • (63 octets).(63 * octets).(63 octets).(61 octets) is legal because the total length is 253 * octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.

  • * (64 octets).(63 octets).(63 octets).(61 octets) is not legal * because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first * label exceeds 63 octets.

  • (63 octets).(63 octets).(63 * octets).(62 octets) is not legal because the total length of the DNS name * (63+1+63+1+63+1+62) exceeds 253 octets.

*/ inline RequestCertificateRequest& AddSubjectAlternativeNames(const char* value) { m_subjectAlternativeNamesHasBeenSet = true; m_subjectAlternativeNames.push_back(value); return *this; } /** *

Customer chosen string that can be used to distinguish between calls to * RequestCertificate. Idempotency tokens time out after one hour. * Therefore, if you call RequestCertificate multiple times with the * same idempotency token within one hour, ACM recognizes that you are requesting * only one certificate and will issue only one. If you change the idempotency * token for each call, ACM recognizes that you are requesting multiple * certificates.

*/ inline const Aws::String& GetIdempotencyToken() const{ return m_idempotencyToken; } /** *

Customer chosen string that can be used to distinguish between calls to * RequestCertificate. Idempotency tokens time out after one hour. * Therefore, if you call RequestCertificate multiple times with the * same idempotency token within one hour, ACM recognizes that you are requesting * only one certificate and will issue only one. If you change the idempotency * token for each call, ACM recognizes that you are requesting multiple * certificates.

*/ inline bool IdempotencyTokenHasBeenSet() const { return m_idempotencyTokenHasBeenSet; } /** *

Customer chosen string that can be used to distinguish between calls to * RequestCertificate. Idempotency tokens time out after one hour. * Therefore, if you call RequestCertificate multiple times with the * same idempotency token within one hour, ACM recognizes that you are requesting * only one certificate and will issue only one. If you change the idempotency * token for each call, ACM recognizes that you are requesting multiple * certificates.

*/ inline void SetIdempotencyToken(const Aws::String& value) { m_idempotencyTokenHasBeenSet = true; m_idempotencyToken = value; } /** *

Customer chosen string that can be used to distinguish between calls to * RequestCertificate. Idempotency tokens time out after one hour. * Therefore, if you call RequestCertificate multiple times with the * same idempotency token within one hour, ACM recognizes that you are requesting * only one certificate and will issue only one. If you change the idempotency * token for each call, ACM recognizes that you are requesting multiple * certificates.

*/ inline void SetIdempotencyToken(Aws::String&& value) { m_idempotencyTokenHasBeenSet = true; m_idempotencyToken = std::move(value); } /** *

Customer chosen string that can be used to distinguish between calls to * RequestCertificate. Idempotency tokens time out after one hour. * Therefore, if you call RequestCertificate multiple times with the * same idempotency token within one hour, ACM recognizes that you are requesting * only one certificate and will issue only one. If you change the idempotency * token for each call, ACM recognizes that you are requesting multiple * certificates.

*/ inline void SetIdempotencyToken(const char* value) { m_idempotencyTokenHasBeenSet = true; m_idempotencyToken.assign(value); } /** *

Customer chosen string that can be used to distinguish between calls to * RequestCertificate. Idempotency tokens time out after one hour. * Therefore, if you call RequestCertificate multiple times with the * same idempotency token within one hour, ACM recognizes that you are requesting * only one certificate and will issue only one. If you change the idempotency * token for each call, ACM recognizes that you are requesting multiple * certificates.

*/ inline RequestCertificateRequest& WithIdempotencyToken(const Aws::String& value) { SetIdempotencyToken(value); return *this;} /** *

Customer chosen string that can be used to distinguish between calls to * RequestCertificate. Idempotency tokens time out after one hour. * Therefore, if you call RequestCertificate multiple times with the * same idempotency token within one hour, ACM recognizes that you are requesting * only one certificate and will issue only one. If you change the idempotency * token for each call, ACM recognizes that you are requesting multiple * certificates.

*/ inline RequestCertificateRequest& WithIdempotencyToken(Aws::String&& value) { SetIdempotencyToken(std::move(value)); return *this;} /** *

Customer chosen string that can be used to distinguish between calls to * RequestCertificate. Idempotency tokens time out after one hour. * Therefore, if you call RequestCertificate multiple times with the * same idempotency token within one hour, ACM recognizes that you are requesting * only one certificate and will issue only one. If you change the idempotency * token for each call, ACM recognizes that you are requesting multiple * certificates.

*/ inline RequestCertificateRequest& WithIdempotencyToken(const char* value) { SetIdempotencyToken(value); return *this;} /** *

The domain name that you want ACM to use to send you emails so that you can * validate domain ownership.

*/ inline const Aws::Vector& GetDomainValidationOptions() const{ return m_domainValidationOptions; } /** *

The domain name that you want ACM to use to send you emails so that you can * validate domain ownership.

*/ inline bool DomainValidationOptionsHasBeenSet() const { return m_domainValidationOptionsHasBeenSet; } /** *

The domain name that you want ACM to use to send you emails so that you can * validate domain ownership.

*/ inline void SetDomainValidationOptions(const Aws::Vector& value) { m_domainValidationOptionsHasBeenSet = true; m_domainValidationOptions = value; } /** *

The domain name that you want ACM to use to send you emails so that you can * validate domain ownership.

*/ inline void SetDomainValidationOptions(Aws::Vector&& value) { m_domainValidationOptionsHasBeenSet = true; m_domainValidationOptions = std::move(value); } /** *

The domain name that you want ACM to use to send you emails so that you can * validate domain ownership.

*/ inline RequestCertificateRequest& WithDomainValidationOptions(const Aws::Vector& value) { SetDomainValidationOptions(value); return *this;} /** *

The domain name that you want ACM to use to send you emails so that you can * validate domain ownership.

*/ inline RequestCertificateRequest& WithDomainValidationOptions(Aws::Vector&& value) { SetDomainValidationOptions(std::move(value)); return *this;} /** *

The domain name that you want ACM to use to send you emails so that you can * validate domain ownership.

*/ inline RequestCertificateRequest& AddDomainValidationOptions(const DomainValidationOption& value) { m_domainValidationOptionsHasBeenSet = true; m_domainValidationOptions.push_back(value); return *this; } /** *

The domain name that you want ACM to use to send you emails so that you can * validate domain ownership.

*/ inline RequestCertificateRequest& AddDomainValidationOptions(DomainValidationOption&& value) { m_domainValidationOptionsHasBeenSet = true; m_domainValidationOptions.push_back(std::move(value)); return *this; } /** *

Currently, you can use this parameter to specify whether to add the * certificate to a certificate transparency log. Certificate transparency makes it * possible to detect SSL/TLS certificates that have been mistakenly or maliciously * issued. Certificates that have not been logged typically produce an error * message in a browser. For more information, see Opting * Out of Certificate Transparency Logging.

*/ inline const CertificateOptions& GetOptions() const{ return m_options; } /** *

Currently, you can use this parameter to specify whether to add the * certificate to a certificate transparency log. Certificate transparency makes it * possible to detect SSL/TLS certificates that have been mistakenly or maliciously * issued. Certificates that have not been logged typically produce an error * message in a browser. For more information, see Opting * Out of Certificate Transparency Logging.

*/ inline bool OptionsHasBeenSet() const { return m_optionsHasBeenSet; } /** *

Currently, you can use this parameter to specify whether to add the * certificate to a certificate transparency log. Certificate transparency makes it * possible to detect SSL/TLS certificates that have been mistakenly or maliciously * issued. Certificates that have not been logged typically produce an error * message in a browser. For more information, see Opting * Out of Certificate Transparency Logging.

*/ inline void SetOptions(const CertificateOptions& value) { m_optionsHasBeenSet = true; m_options = value; } /** *

Currently, you can use this parameter to specify whether to add the * certificate to a certificate transparency log. Certificate transparency makes it * possible to detect SSL/TLS certificates that have been mistakenly or maliciously * issued. Certificates that have not been logged typically produce an error * message in a browser. For more information, see Opting * Out of Certificate Transparency Logging.

*/ inline void SetOptions(CertificateOptions&& value) { m_optionsHasBeenSet = true; m_options = std::move(value); } /** *

Currently, you can use this parameter to specify whether to add the * certificate to a certificate transparency log. Certificate transparency makes it * possible to detect SSL/TLS certificates that have been mistakenly or maliciously * issued. Certificates that have not been logged typically produce an error * message in a browser. For more information, see Opting * Out of Certificate Transparency Logging.

*/ inline RequestCertificateRequest& WithOptions(const CertificateOptions& value) { SetOptions(value); return *this;} /** *

Currently, you can use this parameter to specify whether to add the * certificate to a certificate transparency log. Certificate transparency makes it * possible to detect SSL/TLS certificates that have been mistakenly or maliciously * issued. Certificates that have not been logged typically produce an error * message in a browser. For more information, see Opting * Out of Certificate Transparency Logging.

*/ inline RequestCertificateRequest& WithOptions(CertificateOptions&& value) { SetOptions(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the private certificate authority (CA) that * will be used to issue the certificate. If you do not provide an ARN and you are * trying to request a private certificate, ACM will attempt to issue a public * certificate. For more information about private CAs, see the Amazon * Web Services Private Certificate Authority user guide. The ARN must have the * following form:

* arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 *

*/ inline const Aws::String& GetCertificateAuthorityArn() const{ return m_certificateAuthorityArn; } /** *

The Amazon Resource Name (ARN) of the private certificate authority (CA) that * will be used to issue the certificate. If you do not provide an ARN and you are * trying to request a private certificate, ACM will attempt to issue a public * certificate. For more information about private CAs, see the Amazon * Web Services Private Certificate Authority user guide. The ARN must have the * following form:

* arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 *

*/ inline bool CertificateAuthorityArnHasBeenSet() const { return m_certificateAuthorityArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the private certificate authority (CA) that * will be used to issue the certificate. If you do not provide an ARN and you are * trying to request a private certificate, ACM will attempt to issue a public * certificate. For more information about private CAs, see the Amazon * Web Services Private Certificate Authority user guide. The ARN must have the * following form:

* arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 *

*/ inline void SetCertificateAuthorityArn(const Aws::String& value) { m_certificateAuthorityArnHasBeenSet = true; m_certificateAuthorityArn = value; } /** *

The Amazon Resource Name (ARN) of the private certificate authority (CA) that * will be used to issue the certificate. If you do not provide an ARN and you are * trying to request a private certificate, ACM will attempt to issue a public * certificate. For more information about private CAs, see the Amazon * Web Services Private Certificate Authority user guide. The ARN must have the * following form:

* arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 *

*/ inline void SetCertificateAuthorityArn(Aws::String&& value) { m_certificateAuthorityArnHasBeenSet = true; m_certificateAuthorityArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the private certificate authority (CA) that * will be used to issue the certificate. If you do not provide an ARN and you are * trying to request a private certificate, ACM will attempt to issue a public * certificate. For more information about private CAs, see the Amazon * Web Services Private Certificate Authority user guide. The ARN must have the * following form:

* arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 *

*/ inline void SetCertificateAuthorityArn(const char* value) { m_certificateAuthorityArnHasBeenSet = true; m_certificateAuthorityArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the private certificate authority (CA) that * will be used to issue the certificate. If you do not provide an ARN and you are * trying to request a private certificate, ACM will attempt to issue a public * certificate. For more information about private CAs, see the Amazon * Web Services Private Certificate Authority user guide. The ARN must have the * following form:

* arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 *

*/ inline RequestCertificateRequest& WithCertificateAuthorityArn(const Aws::String& value) { SetCertificateAuthorityArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the private certificate authority (CA) that * will be used to issue the certificate. If you do not provide an ARN and you are * trying to request a private certificate, ACM will attempt to issue a public * certificate. For more information about private CAs, see the Amazon * Web Services Private Certificate Authority user guide. The ARN must have the * following form:

* arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 *

*/ inline RequestCertificateRequest& WithCertificateAuthorityArn(Aws::String&& value) { SetCertificateAuthorityArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the private certificate authority (CA) that * will be used to issue the certificate. If you do not provide an ARN and you are * trying to request a private certificate, ACM will attempt to issue a public * certificate. For more information about private CAs, see the Amazon * Web Services Private Certificate Authority user guide. The ARN must have the * following form:

* arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 *

*/ inline RequestCertificateRequest& WithCertificateAuthorityArn(const char* value) { SetCertificateAuthorityArn(value); return *this;} /** *

One or more resource tags to associate with the certificate.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

One or more resource tags to associate with the certificate.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

One or more resource tags to associate with the certificate.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

One or more resource tags to associate with the certificate.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

One or more resource tags to associate with the certificate.

*/ inline RequestCertificateRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

One or more resource tags to associate with the certificate.

*/ inline RequestCertificateRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

One or more resource tags to associate with the certificate.

*/ inline RequestCertificateRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

One or more resource tags to associate with the certificate.

*/ inline RequestCertificateRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

Specifies the algorithm of the public and private key pair that your * certificate uses to encrypt data. RSA is the default key algorithm for ACM * certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are * smaller, offering security comparable to RSA keys but with greater computing * efficiency. However, ECDSA is not supported by all network clients. Some AWS * services may require RSA keys, or only support ECDSA keys of a particular size, * while others allow the use of either RSA and ECDSA keys to ensure that * compatibility is not broken. Check the requirements for the AWS service where * you plan to deploy your certificate.

Default: RSA_2048

*/ inline const KeyAlgorithm& GetKeyAlgorithm() const{ return m_keyAlgorithm; } /** *

Specifies the algorithm of the public and private key pair that your * certificate uses to encrypt data. RSA is the default key algorithm for ACM * certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are * smaller, offering security comparable to RSA keys but with greater computing * efficiency. However, ECDSA is not supported by all network clients. Some AWS * services may require RSA keys, or only support ECDSA keys of a particular size, * while others allow the use of either RSA and ECDSA keys to ensure that * compatibility is not broken. Check the requirements for the AWS service where * you plan to deploy your certificate.

Default: RSA_2048

*/ inline bool KeyAlgorithmHasBeenSet() const { return m_keyAlgorithmHasBeenSet; } /** *

Specifies the algorithm of the public and private key pair that your * certificate uses to encrypt data. RSA is the default key algorithm for ACM * certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are * smaller, offering security comparable to RSA keys but with greater computing * efficiency. However, ECDSA is not supported by all network clients. Some AWS * services may require RSA keys, or only support ECDSA keys of a particular size, * while others allow the use of either RSA and ECDSA keys to ensure that * compatibility is not broken. Check the requirements for the AWS service where * you plan to deploy your certificate.

Default: RSA_2048

*/ inline void SetKeyAlgorithm(const KeyAlgorithm& value) { m_keyAlgorithmHasBeenSet = true; m_keyAlgorithm = value; } /** *

Specifies the algorithm of the public and private key pair that your * certificate uses to encrypt data. RSA is the default key algorithm for ACM * certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are * smaller, offering security comparable to RSA keys but with greater computing * efficiency. However, ECDSA is not supported by all network clients. Some AWS * services may require RSA keys, or only support ECDSA keys of a particular size, * while others allow the use of either RSA and ECDSA keys to ensure that * compatibility is not broken. Check the requirements for the AWS service where * you plan to deploy your certificate.

Default: RSA_2048

*/ inline void SetKeyAlgorithm(KeyAlgorithm&& value) { m_keyAlgorithmHasBeenSet = true; m_keyAlgorithm = std::move(value); } /** *

Specifies the algorithm of the public and private key pair that your * certificate uses to encrypt data. RSA is the default key algorithm for ACM * certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are * smaller, offering security comparable to RSA keys but with greater computing * efficiency. However, ECDSA is not supported by all network clients. Some AWS * services may require RSA keys, or only support ECDSA keys of a particular size, * while others allow the use of either RSA and ECDSA keys to ensure that * compatibility is not broken. Check the requirements for the AWS service where * you plan to deploy your certificate.

Default: RSA_2048

*/ inline RequestCertificateRequest& WithKeyAlgorithm(const KeyAlgorithm& value) { SetKeyAlgorithm(value); return *this;} /** *

Specifies the algorithm of the public and private key pair that your * certificate uses to encrypt data. RSA is the default key algorithm for ACM * certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are * smaller, offering security comparable to RSA keys but with greater computing * efficiency. However, ECDSA is not supported by all network clients. Some AWS * services may require RSA keys, or only support ECDSA keys of a particular size, * while others allow the use of either RSA and ECDSA keys to ensure that * compatibility is not broken. Check the requirements for the AWS service where * you plan to deploy your certificate.

Default: RSA_2048

*/ inline RequestCertificateRequest& WithKeyAlgorithm(KeyAlgorithm&& value) { SetKeyAlgorithm(std::move(value)); return *this;} private: Aws::String m_domainName; bool m_domainNameHasBeenSet = false; ValidationMethod m_validationMethod; bool m_validationMethodHasBeenSet = false; Aws::Vector m_subjectAlternativeNames; bool m_subjectAlternativeNamesHasBeenSet = false; Aws::String m_idempotencyToken; bool m_idempotencyTokenHasBeenSet = false; Aws::Vector m_domainValidationOptions; bool m_domainValidationOptionsHasBeenSet = false; CertificateOptions m_options; bool m_optionsHasBeenSet = false; Aws::String m_certificateAuthorityArn; bool m_certificateAuthorityArnHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; KeyAlgorithm m_keyAlgorithm; bool m_keyAlgorithmHasBeenSet = false; }; } // namespace Model } // namespace ACM } // namespace Aws