/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Lightsail { namespace Model { /** *

Describes the full details of an Amazon Lightsail SSL/TLS certificate.

*

To get a summary of a certificate, use the * GetCertificates action and omit * includeCertificateDetails from your request. The response will * include only the certificate Amazon Resource Name (ARN), certificate name, * domain name, and tags.

See Also:

AWS * API Reference

*/ class Certificate { public: AWS_LIGHTSAIL_API Certificate(); AWS_LIGHTSAIL_API Certificate(Aws::Utils::Json::JsonView jsonValue); AWS_LIGHTSAIL_API Certificate& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_LIGHTSAIL_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The Amazon Resource Name (ARN) of the certificate.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The Amazon Resource Name (ARN) of the certificate.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the certificate.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The Amazon Resource Name (ARN) of the certificate.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the certificate.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The Amazon Resource Name (ARN) of the certificate.

*/ inline Certificate& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the certificate.

*/ inline Certificate& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the certificate.

*/ inline Certificate& WithArn(const char* value) { SetArn(value); return *this;} /** *

The name of the certificate (e.g., my-certificate).

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the certificate (e.g., my-certificate).

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the certificate (e.g., my-certificate).

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the certificate (e.g., my-certificate).

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the certificate (e.g., my-certificate).

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the certificate (e.g., my-certificate).

*/ inline Certificate& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the certificate (e.g., my-certificate).

*/ inline Certificate& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the certificate (e.g., my-certificate).

*/ inline Certificate& WithName(const char* value) { SetName(value); return *this;} /** *

The domain name of the certificate.

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

The domain name of the certificate.

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

The domain name of the certificate.

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

The domain name of the certificate.

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

The domain name of the certificate.

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

The domain name of the certificate.

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

The domain name of the certificate.

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

The domain name of the certificate.

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

The validation status of the certificate.

*/ inline const CertificateStatus& GetStatus() const{ return m_status; } /** *

The validation status of the certificate.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The validation status of the certificate.

*/ inline void SetStatus(const CertificateStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The validation status of the certificate.

*/ inline void SetStatus(CertificateStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The validation status of the certificate.

*/ inline Certificate& WithStatus(const CertificateStatus& value) { SetStatus(value); return *this;} /** *

The validation status of the certificate.

*/ inline Certificate& WithStatus(CertificateStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

The serial number of the certificate.

*/ inline const Aws::String& GetSerialNumber() const{ return m_serialNumber; } /** *

The serial number of the certificate.

*/ inline bool SerialNumberHasBeenSet() const { return m_serialNumberHasBeenSet; } /** *

The serial number of the certificate.

*/ inline void SetSerialNumber(const Aws::String& value) { m_serialNumberHasBeenSet = true; m_serialNumber = value; } /** *

The serial number of the certificate.

*/ inline void SetSerialNumber(Aws::String&& value) { m_serialNumberHasBeenSet = true; m_serialNumber = std::move(value); } /** *

The serial number of the certificate.

*/ inline void SetSerialNumber(const char* value) { m_serialNumberHasBeenSet = true; m_serialNumber.assign(value); } /** *

The serial number of the certificate.

*/ inline Certificate& WithSerialNumber(const Aws::String& value) { SetSerialNumber(value); return *this;} /** *

The serial number of the certificate.

*/ inline Certificate& WithSerialNumber(Aws::String&& value) { SetSerialNumber(std::move(value)); return *this;} /** *

The serial number of the certificate.

*/ inline Certificate& WithSerialNumber(const char* value) { SetSerialNumber(value); return *this;} /** *

An array of strings that specify the alternate domains (e.g., * example2.com) and subdomains (e.g., blog.example.com) * of the certificate.

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

An array of strings that specify the alternate domains (e.g., * example2.com) and subdomains (e.g., blog.example.com) * of the certificate.

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

An array of strings that specify the alternate domains (e.g., * example2.com) and subdomains (e.g., blog.example.com) * of the certificate.

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

An array of strings that specify the alternate domains (e.g., * example2.com) and subdomains (e.g., blog.example.com) * of the certificate.

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

An array of strings that specify the alternate domains (e.g., * example2.com) and subdomains (e.g., blog.example.com) * of the certificate.

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

An array of strings that specify the alternate domains (e.g., * example2.com) and subdomains (e.g., blog.example.com) * of the certificate.

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

An array of strings that specify the alternate domains (e.g., * example2.com) and subdomains (e.g., blog.example.com) * of the certificate.

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

An array of strings that specify the alternate domains (e.g., * example2.com) and subdomains (e.g., blog.example.com) * of the certificate.

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

An array of strings that specify the alternate domains (e.g., * example2.com) and subdomains (e.g., blog.example.com) * of the certificate.

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

An array of objects that describe the domain validation records of the * certificate.

*/ inline const Aws::Vector& GetDomainValidationRecords() const{ return m_domainValidationRecords; } /** *

An array of objects that describe the domain validation records of the * certificate.

*/ inline bool DomainValidationRecordsHasBeenSet() const { return m_domainValidationRecordsHasBeenSet; } /** *

An array of objects that describe the domain validation records of the * certificate.

*/ inline void SetDomainValidationRecords(const Aws::Vector& value) { m_domainValidationRecordsHasBeenSet = true; m_domainValidationRecords = value; } /** *

An array of objects that describe the domain validation records of the * certificate.

*/ inline void SetDomainValidationRecords(Aws::Vector&& value) { m_domainValidationRecordsHasBeenSet = true; m_domainValidationRecords = std::move(value); } /** *

An array of objects that describe the domain validation records of the * certificate.

*/ inline Certificate& WithDomainValidationRecords(const Aws::Vector& value) { SetDomainValidationRecords(value); return *this;} /** *

An array of objects that describe the domain validation records of the * certificate.

*/ inline Certificate& WithDomainValidationRecords(Aws::Vector&& value) { SetDomainValidationRecords(std::move(value)); return *this;} /** *

An array of objects that describe the domain validation records of the * certificate.

*/ inline Certificate& AddDomainValidationRecords(const DomainValidationRecord& value) { m_domainValidationRecordsHasBeenSet = true; m_domainValidationRecords.push_back(value); return *this; } /** *

An array of objects that describe the domain validation records of the * certificate.

*/ inline Certificate& AddDomainValidationRecords(DomainValidationRecord&& value) { m_domainValidationRecordsHasBeenSet = true; m_domainValidationRecords.push_back(std::move(value)); return *this; } /** *

The validation failure reason, if any, of the certificate.

The * following failure reasons are possible:

  • * NO_AVAILABLE_CONTACTS - This failure applies to email * validation, which is not available for Lightsail certificates.

  • *

    ADDITIONAL_VERIFICATION_REQUIRED - Lightsail requires * additional information to process this certificate request. This can happen as a * fraud-protection measure, such as when the domain ranks within the Alexa top * 1000 websites. To provide the required information, use the Amazon Web Services Support * Center to contact Amazon Web Services Support.

    You cannot * request a certificate for Amazon-owned domain names such as those ending in * amazonaws.com, cloudfront.net, or elasticbeanstalk.com.

  • *

    DOMAIN_NOT_ALLOWED - One or more of the domain names * in the certificate request was reported as an unsafe domain by VirusTotal. To correct the * problem, search for your domain name on the VirusTotal website. If your * domain is reported as suspicious, see Google * Help for Hacked Websites to learn what you can do.

    If you believe * that the result is a false positive, notify the organization that is reporting * the domain. VirusTotal is an aggregate of several antivirus and URL scanners and * cannot remove your domain from a block list itself. After you correct the * problem and the VirusTotal registry has been updated, request a new * certificate.

    If you see this error and your domain is not included in the * VirusTotal list, visit the Amazon Web Services Support * Center and create a case.

  • * INVALID_PUBLIC_DOMAIN - One or more of the domain names in the * certificate request is not valid. Typically, this is because a domain name in * the request is not a valid top-level domain. Try to request a certificate again, * correcting any spelling errors or typos that were in the failed request, and * ensure that all domain names in the request are for valid top-level domains. For * example, you cannot request a certificate for * example.invalidpublicdomain because * invalidpublicdomain is not a valid top-level domain.

  • *

    OTHER - Typically, this failure occurs when there is a * typographical error in one or more of the domain names in the certificate * request. Try to request a certificate again, correcting any spelling errors or * typos that were in the failed request.

*/ inline const Aws::String& GetRequestFailureReason() const{ return m_requestFailureReason; } /** *

The validation failure reason, if any, of the certificate.

The * following failure reasons are possible:

  • * NO_AVAILABLE_CONTACTS - This failure applies to email * validation, which is not available for Lightsail certificates.

  • *

    ADDITIONAL_VERIFICATION_REQUIRED - Lightsail requires * additional information to process this certificate request. This can happen as a * fraud-protection measure, such as when the domain ranks within the Alexa top * 1000 websites. To provide the required information, use the Amazon Web Services Support * Center to contact Amazon Web Services Support.

    You cannot * request a certificate for Amazon-owned domain names such as those ending in * amazonaws.com, cloudfront.net, or elasticbeanstalk.com.

  • *

    DOMAIN_NOT_ALLOWED - One or more of the domain names * in the certificate request was reported as an unsafe domain by VirusTotal. To correct the * problem, search for your domain name on the VirusTotal website. If your * domain is reported as suspicious, see Google * Help for Hacked Websites to learn what you can do.

    If you believe * that the result is a false positive, notify the organization that is reporting * the domain. VirusTotal is an aggregate of several antivirus and URL scanners and * cannot remove your domain from a block list itself. After you correct the * problem and the VirusTotal registry has been updated, request a new * certificate.

    If you see this error and your domain is not included in the * VirusTotal list, visit the Amazon Web Services Support * Center and create a case.

  • * INVALID_PUBLIC_DOMAIN - One or more of the domain names in the * certificate request is not valid. Typically, this is because a domain name in * the request is not a valid top-level domain. Try to request a certificate again, * correcting any spelling errors or typos that were in the failed request, and * ensure that all domain names in the request are for valid top-level domains. For * example, you cannot request a certificate for * example.invalidpublicdomain because * invalidpublicdomain is not a valid top-level domain.

  • *

    OTHER - Typically, this failure occurs when there is a * typographical error in one or more of the domain names in the certificate * request. Try to request a certificate again, correcting any spelling errors or * typos that were in the failed request.

*/ inline bool RequestFailureReasonHasBeenSet() const { return m_requestFailureReasonHasBeenSet; } /** *

The validation failure reason, if any, of the certificate.

The * following failure reasons are possible:

  • * NO_AVAILABLE_CONTACTS - This failure applies to email * validation, which is not available for Lightsail certificates.

  • *

    ADDITIONAL_VERIFICATION_REQUIRED - Lightsail requires * additional information to process this certificate request. This can happen as a * fraud-protection measure, such as when the domain ranks within the Alexa top * 1000 websites. To provide the required information, use the Amazon Web Services Support * Center to contact Amazon Web Services Support.

    You cannot * request a certificate for Amazon-owned domain names such as those ending in * amazonaws.com, cloudfront.net, or elasticbeanstalk.com.

  • *

    DOMAIN_NOT_ALLOWED - One or more of the domain names * in the certificate request was reported as an unsafe domain by VirusTotal. To correct the * problem, search for your domain name on the VirusTotal website. If your * domain is reported as suspicious, see Google * Help for Hacked Websites to learn what you can do.

    If you believe * that the result is a false positive, notify the organization that is reporting * the domain. VirusTotal is an aggregate of several antivirus and URL scanners and * cannot remove your domain from a block list itself. After you correct the * problem and the VirusTotal registry has been updated, request a new * certificate.

    If you see this error and your domain is not included in the * VirusTotal list, visit the Amazon Web Services Support * Center and create a case.

  • * INVALID_PUBLIC_DOMAIN - One or more of the domain names in the * certificate request is not valid. Typically, this is because a domain name in * the request is not a valid top-level domain. Try to request a certificate again, * correcting any spelling errors or typos that were in the failed request, and * ensure that all domain names in the request are for valid top-level domains. For * example, you cannot request a certificate for * example.invalidpublicdomain because * invalidpublicdomain is not a valid top-level domain.

  • *

    OTHER - Typically, this failure occurs when there is a * typographical error in one or more of the domain names in the certificate * request. Try to request a certificate again, correcting any spelling errors or * typos that were in the failed request.

*/ inline void SetRequestFailureReason(const Aws::String& value) { m_requestFailureReasonHasBeenSet = true; m_requestFailureReason = value; } /** *

The validation failure reason, if any, of the certificate.

The * following failure reasons are possible:

  • * NO_AVAILABLE_CONTACTS - This failure applies to email * validation, which is not available for Lightsail certificates.

  • *

    ADDITIONAL_VERIFICATION_REQUIRED - Lightsail requires * additional information to process this certificate request. This can happen as a * fraud-protection measure, such as when the domain ranks within the Alexa top * 1000 websites. To provide the required information, use the Amazon Web Services Support * Center to contact Amazon Web Services Support.

    You cannot * request a certificate for Amazon-owned domain names such as those ending in * amazonaws.com, cloudfront.net, or elasticbeanstalk.com.

  • *

    DOMAIN_NOT_ALLOWED - One or more of the domain names * in the certificate request was reported as an unsafe domain by VirusTotal. To correct the * problem, search for your domain name on the VirusTotal website. If your * domain is reported as suspicious, see Google * Help for Hacked Websites to learn what you can do.

    If you believe * that the result is a false positive, notify the organization that is reporting * the domain. VirusTotal is an aggregate of several antivirus and URL scanners and * cannot remove your domain from a block list itself. After you correct the * problem and the VirusTotal registry has been updated, request a new * certificate.

    If you see this error and your domain is not included in the * VirusTotal list, visit the Amazon Web Services Support * Center and create a case.

  • * INVALID_PUBLIC_DOMAIN - One or more of the domain names in the * certificate request is not valid. Typically, this is because a domain name in * the request is not a valid top-level domain. Try to request a certificate again, * correcting any spelling errors or typos that were in the failed request, and * ensure that all domain names in the request are for valid top-level domains. For * example, you cannot request a certificate for * example.invalidpublicdomain because * invalidpublicdomain is not a valid top-level domain.

  • *

    OTHER - Typically, this failure occurs when there is a * typographical error in one or more of the domain names in the certificate * request. Try to request a certificate again, correcting any spelling errors or * typos that were in the failed request.

*/ inline void SetRequestFailureReason(Aws::String&& value) { m_requestFailureReasonHasBeenSet = true; m_requestFailureReason = std::move(value); } /** *

The validation failure reason, if any, of the certificate.

The * following failure reasons are possible:

  • * NO_AVAILABLE_CONTACTS - This failure applies to email * validation, which is not available for Lightsail certificates.

  • *

    ADDITIONAL_VERIFICATION_REQUIRED - Lightsail requires * additional information to process this certificate request. This can happen as a * fraud-protection measure, such as when the domain ranks within the Alexa top * 1000 websites. To provide the required information, use the Amazon Web Services Support * Center to contact Amazon Web Services Support.

    You cannot * request a certificate for Amazon-owned domain names such as those ending in * amazonaws.com, cloudfront.net, or elasticbeanstalk.com.

  • *

    DOMAIN_NOT_ALLOWED - One or more of the domain names * in the certificate request was reported as an unsafe domain by VirusTotal. To correct the * problem, search for your domain name on the VirusTotal website. If your * domain is reported as suspicious, see Google * Help for Hacked Websites to learn what you can do.

    If you believe * that the result is a false positive, notify the organization that is reporting * the domain. VirusTotal is an aggregate of several antivirus and URL scanners and * cannot remove your domain from a block list itself. After you correct the * problem and the VirusTotal registry has been updated, request a new * certificate.

    If you see this error and your domain is not included in the * VirusTotal list, visit the Amazon Web Services Support * Center and create a case.

  • * INVALID_PUBLIC_DOMAIN - One or more of the domain names in the * certificate request is not valid. Typically, this is because a domain name in * the request is not a valid top-level domain. Try to request a certificate again, * correcting any spelling errors or typos that were in the failed request, and * ensure that all domain names in the request are for valid top-level domains. For * example, you cannot request a certificate for * example.invalidpublicdomain because * invalidpublicdomain is not a valid top-level domain.

  • *

    OTHER - Typically, this failure occurs when there is a * typographical error in one or more of the domain names in the certificate * request. Try to request a certificate again, correcting any spelling errors or * typos that were in the failed request.

*/ inline void SetRequestFailureReason(const char* value) { m_requestFailureReasonHasBeenSet = true; m_requestFailureReason.assign(value); } /** *

The validation failure reason, if any, of the certificate.

The * following failure reasons are possible:

  • * NO_AVAILABLE_CONTACTS - This failure applies to email * validation, which is not available for Lightsail certificates.

  • *

    ADDITIONAL_VERIFICATION_REQUIRED - Lightsail requires * additional information to process this certificate request. This can happen as a * fraud-protection measure, such as when the domain ranks within the Alexa top * 1000 websites. To provide the required information, use the Amazon Web Services Support * Center to contact Amazon Web Services Support.

    You cannot * request a certificate for Amazon-owned domain names such as those ending in * amazonaws.com, cloudfront.net, or elasticbeanstalk.com.

  • *

    DOMAIN_NOT_ALLOWED - One or more of the domain names * in the certificate request was reported as an unsafe domain by VirusTotal. To correct the * problem, search for your domain name on the VirusTotal website. If your * domain is reported as suspicious, see Google * Help for Hacked Websites to learn what you can do.

    If you believe * that the result is a false positive, notify the organization that is reporting * the domain. VirusTotal is an aggregate of several antivirus and URL scanners and * cannot remove your domain from a block list itself. After you correct the * problem and the VirusTotal registry has been updated, request a new * certificate.

    If you see this error and your domain is not included in the * VirusTotal list, visit the Amazon Web Services Support * Center and create a case.

  • * INVALID_PUBLIC_DOMAIN - One or more of the domain names in the * certificate request is not valid. Typically, this is because a domain name in * the request is not a valid top-level domain. Try to request a certificate again, * correcting any spelling errors or typos that were in the failed request, and * ensure that all domain names in the request are for valid top-level domains. For * example, you cannot request a certificate for * example.invalidpublicdomain because * invalidpublicdomain is not a valid top-level domain.

  • *

    OTHER - Typically, this failure occurs when there is a * typographical error in one or more of the domain names in the certificate * request. Try to request a certificate again, correcting any spelling errors or * typos that were in the failed request.

*/ inline Certificate& WithRequestFailureReason(const Aws::String& value) { SetRequestFailureReason(value); return *this;} /** *

The validation failure reason, if any, of the certificate.

The * following failure reasons are possible:

  • * NO_AVAILABLE_CONTACTS - This failure applies to email * validation, which is not available for Lightsail certificates.

  • *

    ADDITIONAL_VERIFICATION_REQUIRED - Lightsail requires * additional information to process this certificate request. This can happen as a * fraud-protection measure, such as when the domain ranks within the Alexa top * 1000 websites. To provide the required information, use the Amazon Web Services Support * Center to contact Amazon Web Services Support.

    You cannot * request a certificate for Amazon-owned domain names such as those ending in * amazonaws.com, cloudfront.net, or elasticbeanstalk.com.

  • *

    DOMAIN_NOT_ALLOWED - One or more of the domain names * in the certificate request was reported as an unsafe domain by VirusTotal. To correct the * problem, search for your domain name on the VirusTotal website. If your * domain is reported as suspicious, see Google * Help for Hacked Websites to learn what you can do.

    If you believe * that the result is a false positive, notify the organization that is reporting * the domain. VirusTotal is an aggregate of several antivirus and URL scanners and * cannot remove your domain from a block list itself. After you correct the * problem and the VirusTotal registry has been updated, request a new * certificate.

    If you see this error and your domain is not included in the * VirusTotal list, visit the Amazon Web Services Support * Center and create a case.

  • * INVALID_PUBLIC_DOMAIN - One or more of the domain names in the * certificate request is not valid. Typically, this is because a domain name in * the request is not a valid top-level domain. Try to request a certificate again, * correcting any spelling errors or typos that were in the failed request, and * ensure that all domain names in the request are for valid top-level domains. For * example, you cannot request a certificate for * example.invalidpublicdomain because * invalidpublicdomain is not a valid top-level domain.

  • *

    OTHER - Typically, this failure occurs when there is a * typographical error in one or more of the domain names in the certificate * request. Try to request a certificate again, correcting any spelling errors or * typos that were in the failed request.

*/ inline Certificate& WithRequestFailureReason(Aws::String&& value) { SetRequestFailureReason(std::move(value)); return *this;} /** *

The validation failure reason, if any, of the certificate.

The * following failure reasons are possible:

  • * NO_AVAILABLE_CONTACTS - This failure applies to email * validation, which is not available for Lightsail certificates.

  • *

    ADDITIONAL_VERIFICATION_REQUIRED - Lightsail requires * additional information to process this certificate request. This can happen as a * fraud-protection measure, such as when the domain ranks within the Alexa top * 1000 websites. To provide the required information, use the Amazon Web Services Support * Center to contact Amazon Web Services Support.

    You cannot * request a certificate for Amazon-owned domain names such as those ending in * amazonaws.com, cloudfront.net, or elasticbeanstalk.com.

  • *

    DOMAIN_NOT_ALLOWED - One or more of the domain names * in the certificate request was reported as an unsafe domain by VirusTotal. To correct the * problem, search for your domain name on the VirusTotal website. If your * domain is reported as suspicious, see Google * Help for Hacked Websites to learn what you can do.

    If you believe * that the result is a false positive, notify the organization that is reporting * the domain. VirusTotal is an aggregate of several antivirus and URL scanners and * cannot remove your domain from a block list itself. After you correct the * problem and the VirusTotal registry has been updated, request a new * certificate.

    If you see this error and your domain is not included in the * VirusTotal list, visit the Amazon Web Services Support * Center and create a case.

  • * INVALID_PUBLIC_DOMAIN - One or more of the domain names in the * certificate request is not valid. Typically, this is because a domain name in * the request is not a valid top-level domain. Try to request a certificate again, * correcting any spelling errors or typos that were in the failed request, and * ensure that all domain names in the request are for valid top-level domains. For * example, you cannot request a certificate for * example.invalidpublicdomain because * invalidpublicdomain is not a valid top-level domain.

  • *

    OTHER - Typically, this failure occurs when there is a * typographical error in one or more of the domain names in the certificate * request. Try to request a certificate again, correcting any spelling errors or * typos that were in the failed request.

*/ inline Certificate& WithRequestFailureReason(const char* value) { SetRequestFailureReason(value); return *this;} /** *

The number of Lightsail resources that the certificate is attached to.

*/ inline int GetInUseResourceCount() const{ return m_inUseResourceCount; } /** *

The number of Lightsail resources that the certificate is attached to.

*/ inline bool InUseResourceCountHasBeenSet() const { return m_inUseResourceCountHasBeenSet; } /** *

The number of Lightsail resources that the certificate is attached to.

*/ inline void SetInUseResourceCount(int value) { m_inUseResourceCountHasBeenSet = true; m_inUseResourceCount = value; } /** *

The number of Lightsail resources that the certificate is attached to.

*/ inline Certificate& WithInUseResourceCount(int value) { SetInUseResourceCount(value); return *this;} /** *

The algorithm used to generate the key pair (the public and private key) of * the certificate.

*/ inline const Aws::String& GetKeyAlgorithm() const{ return m_keyAlgorithm; } /** *

The algorithm used to generate the key pair (the public and private key) of * the certificate.

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

The algorithm used to generate the key pair (the public and private key) of * the certificate.

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

The algorithm used to generate the key pair (the public and private key) of * the certificate.

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

The algorithm used to generate the key pair (the public and private key) of * the certificate.

*/ inline void SetKeyAlgorithm(const char* value) { m_keyAlgorithmHasBeenSet = true; m_keyAlgorithm.assign(value); } /** *

The algorithm used to generate the key pair (the public and private key) of * the certificate.

*/ inline Certificate& WithKeyAlgorithm(const Aws::String& value) { SetKeyAlgorithm(value); return *this;} /** *

The algorithm used to generate the key pair (the public and private key) of * the certificate.

*/ inline Certificate& WithKeyAlgorithm(Aws::String&& value) { SetKeyAlgorithm(std::move(value)); return *this;} /** *

The algorithm used to generate the key pair (the public and private key) of * the certificate.

*/ inline Certificate& WithKeyAlgorithm(const char* value) { SetKeyAlgorithm(value); return *this;} /** *

The timestamp when the certificate was created.

*/ inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; } /** *

The timestamp when the certificate was created.

*/ inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; } /** *

The timestamp when the certificate was created.

*/ inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; } /** *

The timestamp when the certificate was created.

*/ inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); } /** *

The timestamp when the certificate was created.

*/ inline Certificate& WithCreatedAt(const Aws::Utils::DateTime& value) { SetCreatedAt(value); return *this;} /** *

The timestamp when the certificate was created.

*/ inline Certificate& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(std::move(value)); return *this;} /** *

The timestamp when the certificate was issued.

*/ inline const Aws::Utils::DateTime& GetIssuedAt() const{ return m_issuedAt; } /** *

The timestamp when the certificate was issued.

*/ inline bool IssuedAtHasBeenSet() const { return m_issuedAtHasBeenSet; } /** *

The timestamp when the certificate was issued.

*/ inline void SetIssuedAt(const Aws::Utils::DateTime& value) { m_issuedAtHasBeenSet = true; m_issuedAt = value; } /** *

The timestamp when the certificate was issued.

*/ inline void SetIssuedAt(Aws::Utils::DateTime&& value) { m_issuedAtHasBeenSet = true; m_issuedAt = std::move(value); } /** *

The timestamp when the certificate was issued.

*/ inline Certificate& WithIssuedAt(const Aws::Utils::DateTime& value) { SetIssuedAt(value); return *this;} /** *

The timestamp when the certificate was issued.

*/ inline Certificate& WithIssuedAt(Aws::Utils::DateTime&& value) { SetIssuedAt(std::move(value)); return *this;} /** *

The certificate authority that issued the certificate.

*/ inline const Aws::String& GetIssuerCA() const{ return m_issuerCA; } /** *

The certificate authority that issued the certificate.

*/ inline bool IssuerCAHasBeenSet() const { return m_issuerCAHasBeenSet; } /** *

The certificate authority that issued the certificate.

*/ inline void SetIssuerCA(const Aws::String& value) { m_issuerCAHasBeenSet = true; m_issuerCA = value; } /** *

The certificate authority that issued the certificate.

*/ inline void SetIssuerCA(Aws::String&& value) { m_issuerCAHasBeenSet = true; m_issuerCA = std::move(value); } /** *

The certificate authority that issued the certificate.

*/ inline void SetIssuerCA(const char* value) { m_issuerCAHasBeenSet = true; m_issuerCA.assign(value); } /** *

The certificate authority that issued the certificate.

*/ inline Certificate& WithIssuerCA(const Aws::String& value) { SetIssuerCA(value); return *this;} /** *

The certificate authority that issued the certificate.

*/ inline Certificate& WithIssuerCA(Aws::String&& value) { SetIssuerCA(std::move(value)); return *this;} /** *

The certificate authority that issued the certificate.

*/ inline Certificate& WithIssuerCA(const char* value) { SetIssuerCA(value); return *this;} /** *

The timestamp when the certificate is first valid.

*/ inline const Aws::Utils::DateTime& GetNotBefore() const{ return m_notBefore; } /** *

The timestamp when the certificate is first valid.

*/ inline bool NotBeforeHasBeenSet() const { return m_notBeforeHasBeenSet; } /** *

The timestamp when the certificate is first valid.

*/ inline void SetNotBefore(const Aws::Utils::DateTime& value) { m_notBeforeHasBeenSet = true; m_notBefore = value; } /** *

The timestamp when the certificate is first valid.

*/ inline void SetNotBefore(Aws::Utils::DateTime&& value) { m_notBeforeHasBeenSet = true; m_notBefore = std::move(value); } /** *

The timestamp when the certificate is first valid.

*/ inline Certificate& WithNotBefore(const Aws::Utils::DateTime& value) { SetNotBefore(value); return *this;} /** *

The timestamp when the certificate is first valid.

*/ inline Certificate& WithNotBefore(Aws::Utils::DateTime&& value) { SetNotBefore(std::move(value)); return *this;} /** *

The timestamp when the certificate expires.

*/ inline const Aws::Utils::DateTime& GetNotAfter() const{ return m_notAfter; } /** *

The timestamp when the certificate expires.

*/ inline bool NotAfterHasBeenSet() const { return m_notAfterHasBeenSet; } /** *

The timestamp when the certificate expires.

*/ inline void SetNotAfter(const Aws::Utils::DateTime& value) { m_notAfterHasBeenSet = true; m_notAfter = value; } /** *

The timestamp when the certificate expires.

*/ inline void SetNotAfter(Aws::Utils::DateTime&& value) { m_notAfterHasBeenSet = true; m_notAfter = std::move(value); } /** *

The timestamp when the certificate expires.

*/ inline Certificate& WithNotAfter(const Aws::Utils::DateTime& value) { SetNotAfter(value); return *this;} /** *

The timestamp when the certificate expires.

*/ inline Certificate& WithNotAfter(Aws::Utils::DateTime&& value) { SetNotAfter(std::move(value)); return *this;} /** *

The renewal eligibility of the certificate.

*/ inline const Aws::String& GetEligibleToRenew() const{ return m_eligibleToRenew; } /** *

The renewal eligibility of the certificate.

*/ inline bool EligibleToRenewHasBeenSet() const { return m_eligibleToRenewHasBeenSet; } /** *

The renewal eligibility of the certificate.

*/ inline void SetEligibleToRenew(const Aws::String& value) { m_eligibleToRenewHasBeenSet = true; m_eligibleToRenew = value; } /** *

The renewal eligibility of the certificate.

*/ inline void SetEligibleToRenew(Aws::String&& value) { m_eligibleToRenewHasBeenSet = true; m_eligibleToRenew = std::move(value); } /** *

The renewal eligibility of the certificate.

*/ inline void SetEligibleToRenew(const char* value) { m_eligibleToRenewHasBeenSet = true; m_eligibleToRenew.assign(value); } /** *

The renewal eligibility of the certificate.

*/ inline Certificate& WithEligibleToRenew(const Aws::String& value) { SetEligibleToRenew(value); return *this;} /** *

The renewal eligibility of the certificate.

*/ inline Certificate& WithEligibleToRenew(Aws::String&& value) { SetEligibleToRenew(std::move(value)); return *this;} /** *

The renewal eligibility of the certificate.

*/ inline Certificate& WithEligibleToRenew(const char* value) { SetEligibleToRenew(value); return *this;} /** *

An object that describes the status of the certificate renewal managed by * Lightsail.

*/ inline const RenewalSummary& GetRenewalSummary() const{ return m_renewalSummary; } /** *

An object that describes the status of the certificate renewal managed by * Lightsail.

*/ inline bool RenewalSummaryHasBeenSet() const { return m_renewalSummaryHasBeenSet; } /** *

An object that describes the status of the certificate renewal managed by * Lightsail.

*/ inline void SetRenewalSummary(const RenewalSummary& value) { m_renewalSummaryHasBeenSet = true; m_renewalSummary = value; } /** *

An object that describes the status of the certificate renewal managed by * Lightsail.

*/ inline void SetRenewalSummary(RenewalSummary&& value) { m_renewalSummaryHasBeenSet = true; m_renewalSummary = std::move(value); } /** *

An object that describes the status of the certificate renewal managed by * Lightsail.

*/ inline Certificate& WithRenewalSummary(const RenewalSummary& value) { SetRenewalSummary(value); return *this;} /** *

An object that describes the status of the certificate renewal managed by * Lightsail.

*/ inline Certificate& WithRenewalSummary(RenewalSummary&& value) { SetRenewalSummary(std::move(value)); return *this;} /** *

The timestamp when the certificate was revoked. This value is present only * when the certificate status is REVOKED.

*/ inline const Aws::Utils::DateTime& GetRevokedAt() const{ return m_revokedAt; } /** *

The timestamp when the certificate was revoked. This value is present only * when the certificate status is REVOKED.

*/ inline bool RevokedAtHasBeenSet() const { return m_revokedAtHasBeenSet; } /** *

The timestamp when the certificate was revoked. This value is present only * when the certificate status is REVOKED.

*/ inline void SetRevokedAt(const Aws::Utils::DateTime& value) { m_revokedAtHasBeenSet = true; m_revokedAt = value; } /** *

The timestamp when the certificate was revoked. This value is present only * when the certificate status is REVOKED.

*/ inline void SetRevokedAt(Aws::Utils::DateTime&& value) { m_revokedAtHasBeenSet = true; m_revokedAt = std::move(value); } /** *

The timestamp when the certificate was revoked. This value is present only * when the certificate status is REVOKED.

*/ inline Certificate& WithRevokedAt(const Aws::Utils::DateTime& value) { SetRevokedAt(value); return *this;} /** *

The timestamp when the certificate was revoked. This value is present only * when the certificate status is REVOKED.

*/ inline Certificate& WithRevokedAt(Aws::Utils::DateTime&& value) { SetRevokedAt(std::move(value)); return *this;} /** *

The reason the certificate was revoked. This value is present only when the * certificate status is REVOKED.

*/ inline const Aws::String& GetRevocationReason() const{ return m_revocationReason; } /** *

The reason the certificate was revoked. This value is present only when the * certificate status is REVOKED.

*/ inline bool RevocationReasonHasBeenSet() const { return m_revocationReasonHasBeenSet; } /** *

The reason the certificate was revoked. This value is present only when the * certificate status is REVOKED.

*/ inline void SetRevocationReason(const Aws::String& value) { m_revocationReasonHasBeenSet = true; m_revocationReason = value; } /** *

The reason the certificate was revoked. This value is present only when the * certificate status is REVOKED.

*/ inline void SetRevocationReason(Aws::String&& value) { m_revocationReasonHasBeenSet = true; m_revocationReason = std::move(value); } /** *

The reason the certificate was revoked. This value is present only when the * certificate status is REVOKED.

*/ inline void SetRevocationReason(const char* value) { m_revocationReasonHasBeenSet = true; m_revocationReason.assign(value); } /** *

The reason the certificate was revoked. This value is present only when the * certificate status is REVOKED.

*/ inline Certificate& WithRevocationReason(const Aws::String& value) { SetRevocationReason(value); return *this;} /** *

The reason the certificate was revoked. This value is present only when the * certificate status is REVOKED.

*/ inline Certificate& WithRevocationReason(Aws::String&& value) { SetRevocationReason(std::move(value)); return *this;} /** *

The reason the certificate was revoked. This value is present only when the * certificate status is REVOKED.

*/ inline Certificate& WithRevocationReason(const char* value) { SetRevocationReason(value); return *this;} /** *

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

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

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

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

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

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

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

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

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

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

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

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

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

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

The tag keys and optional values for the resource. For more information about * tags in Lightsail, see the Amazon * Lightsail Developer Guide.

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

The support code. Include this code in your email to support when you have * questions about your Lightsail certificate. This code enables our support team * to look up your Lightsail information more easily.

*/ inline const Aws::String& GetSupportCode() const{ return m_supportCode; } /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail certificate. This code enables our support team * to look up your Lightsail information more easily.

*/ inline bool SupportCodeHasBeenSet() const { return m_supportCodeHasBeenSet; } /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail certificate. This code enables our support team * to look up your Lightsail information more easily.

*/ inline void SetSupportCode(const Aws::String& value) { m_supportCodeHasBeenSet = true; m_supportCode = value; } /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail certificate. This code enables our support team * to look up your Lightsail information more easily.

*/ inline void SetSupportCode(Aws::String&& value) { m_supportCodeHasBeenSet = true; m_supportCode = std::move(value); } /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail certificate. This code enables our support team * to look up your Lightsail information more easily.

*/ inline void SetSupportCode(const char* value) { m_supportCodeHasBeenSet = true; m_supportCode.assign(value); } /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail certificate. This code enables our support team * to look up your Lightsail information more easily.

*/ inline Certificate& WithSupportCode(const Aws::String& value) { SetSupportCode(value); return *this;} /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail certificate. This code enables our support team * to look up your Lightsail information more easily.

*/ inline Certificate& WithSupportCode(Aws::String&& value) { SetSupportCode(std::move(value)); return *this;} /** *

The support code. Include this code in your email to support when you have * questions about your Lightsail certificate. This code enables our support team * to look up your Lightsail information more easily.

*/ inline Certificate& WithSupportCode(const char* value) { SetSupportCode(value); return *this;} private: Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_domainName; bool m_domainNameHasBeenSet = false; CertificateStatus m_status; bool m_statusHasBeenSet = false; Aws::String m_serialNumber; bool m_serialNumberHasBeenSet = false; Aws::Vector m_subjectAlternativeNames; bool m_subjectAlternativeNamesHasBeenSet = false; Aws::Vector m_domainValidationRecords; bool m_domainValidationRecordsHasBeenSet = false; Aws::String m_requestFailureReason; bool m_requestFailureReasonHasBeenSet = false; int m_inUseResourceCount; bool m_inUseResourceCountHasBeenSet = false; Aws::String m_keyAlgorithm; bool m_keyAlgorithmHasBeenSet = false; Aws::Utils::DateTime m_createdAt; bool m_createdAtHasBeenSet = false; Aws::Utils::DateTime m_issuedAt; bool m_issuedAtHasBeenSet = false; Aws::String m_issuerCA; bool m_issuerCAHasBeenSet = false; Aws::Utils::DateTime m_notBefore; bool m_notBeforeHasBeenSet = false; Aws::Utils::DateTime m_notAfter; bool m_notAfterHasBeenSet = false; Aws::String m_eligibleToRenew; bool m_eligibleToRenewHasBeenSet = false; RenewalSummary m_renewalSummary; bool m_renewalSummaryHasBeenSet = false; Aws::Utils::DateTime m_revokedAt; bool m_revokedAtHasBeenSet = false; Aws::String m_revocationReason; bool m_revocationReasonHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_supportCode; bool m_supportCodeHasBeenSet = false; }; } // namespace Model } // namespace Lightsail } // namespace Aws