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

Describes a certificate.

See Also:

AWS * API Reference

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

The ARN of the certificate.

*/ inline const Aws::String& GetCertificateArn() const{ return m_certificateArn; } /** *

The ARN of the certificate.

*/ inline bool CertificateArnHasBeenSet() const { return m_certificateArnHasBeenSet; } /** *

The ARN of the certificate.

*/ inline void SetCertificateArn(const Aws::String& value) { m_certificateArnHasBeenSet = true; m_certificateArn = value; } /** *

The ARN of the certificate.

*/ inline void SetCertificateArn(Aws::String&& value) { m_certificateArnHasBeenSet = true; m_certificateArn = std::move(value); } /** *

The ARN of the certificate.

*/ inline void SetCertificateArn(const char* value) { m_certificateArnHasBeenSet = true; m_certificateArn.assign(value); } /** *

The ARN of the certificate.

*/ inline CertificateDescription& WithCertificateArn(const Aws::String& value) { SetCertificateArn(value); return *this;} /** *

The ARN of the certificate.

*/ inline CertificateDescription& WithCertificateArn(Aws::String&& value) { SetCertificateArn(std::move(value)); return *this;} /** *

The ARN of the certificate.

*/ inline CertificateDescription& WithCertificateArn(const char* value) { SetCertificateArn(value); return *this;} /** *

The ID of the certificate.

*/ inline const Aws::String& GetCertificateId() const{ return m_certificateId; } /** *

The ID of the certificate.

*/ inline bool CertificateIdHasBeenSet() const { return m_certificateIdHasBeenSet; } /** *

The ID of the certificate.

*/ inline void SetCertificateId(const Aws::String& value) { m_certificateIdHasBeenSet = true; m_certificateId = value; } /** *

The ID of the certificate.

*/ inline void SetCertificateId(Aws::String&& value) { m_certificateIdHasBeenSet = true; m_certificateId = std::move(value); } /** *

The ID of the certificate.

*/ inline void SetCertificateId(const char* value) { m_certificateIdHasBeenSet = true; m_certificateId.assign(value); } /** *

The ID of the certificate.

*/ inline CertificateDescription& WithCertificateId(const Aws::String& value) { SetCertificateId(value); return *this;} /** *

The ID of the certificate.

*/ inline CertificateDescription& WithCertificateId(Aws::String&& value) { SetCertificateId(std::move(value)); return *this;} /** *

The ID of the certificate.

*/ inline CertificateDescription& WithCertificateId(const char* value) { SetCertificateId(value); return *this;} /** *

The certificate ID of the CA certificate used to sign this certificate.

*/ inline const Aws::String& GetCaCertificateId() const{ return m_caCertificateId; } /** *

The certificate ID of the CA certificate used to sign this certificate.

*/ inline bool CaCertificateIdHasBeenSet() const { return m_caCertificateIdHasBeenSet; } /** *

The certificate ID of the CA certificate used to sign this certificate.

*/ inline void SetCaCertificateId(const Aws::String& value) { m_caCertificateIdHasBeenSet = true; m_caCertificateId = value; } /** *

The certificate ID of the CA certificate used to sign this certificate.

*/ inline void SetCaCertificateId(Aws::String&& value) { m_caCertificateIdHasBeenSet = true; m_caCertificateId = std::move(value); } /** *

The certificate ID of the CA certificate used to sign this certificate.

*/ inline void SetCaCertificateId(const char* value) { m_caCertificateIdHasBeenSet = true; m_caCertificateId.assign(value); } /** *

The certificate ID of the CA certificate used to sign this certificate.

*/ inline CertificateDescription& WithCaCertificateId(const Aws::String& value) { SetCaCertificateId(value); return *this;} /** *

The certificate ID of the CA certificate used to sign this certificate.

*/ inline CertificateDescription& WithCaCertificateId(Aws::String&& value) { SetCaCertificateId(std::move(value)); return *this;} /** *

The certificate ID of the CA certificate used to sign this certificate.

*/ inline CertificateDescription& WithCaCertificateId(const char* value) { SetCaCertificateId(value); return *this;} /** *

The status of the certificate.

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

The status of the certificate.

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

The status of the certificate.

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

The status of the certificate.

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

The status of the certificate.

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

The status of the certificate.

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

The certificate data, in PEM format.

*/ inline const Aws::String& GetCertificatePem() const{ return m_certificatePem; } /** *

The certificate data, in PEM format.

*/ inline bool CertificatePemHasBeenSet() const { return m_certificatePemHasBeenSet; } /** *

The certificate data, in PEM format.

*/ inline void SetCertificatePem(const Aws::String& value) { m_certificatePemHasBeenSet = true; m_certificatePem = value; } /** *

The certificate data, in PEM format.

*/ inline void SetCertificatePem(Aws::String&& value) { m_certificatePemHasBeenSet = true; m_certificatePem = std::move(value); } /** *

The certificate data, in PEM format.

*/ inline void SetCertificatePem(const char* value) { m_certificatePemHasBeenSet = true; m_certificatePem.assign(value); } /** *

The certificate data, in PEM format.

*/ inline CertificateDescription& WithCertificatePem(const Aws::String& value) { SetCertificatePem(value); return *this;} /** *

The certificate data, in PEM format.

*/ inline CertificateDescription& WithCertificatePem(Aws::String&& value) { SetCertificatePem(std::move(value)); return *this;} /** *

The certificate data, in PEM format.

*/ inline CertificateDescription& WithCertificatePem(const char* value) { SetCertificatePem(value); return *this;} /** *

The ID of the Amazon Web Services account that owns the certificate.

*/ inline const Aws::String& GetOwnedBy() const{ return m_ownedBy; } /** *

The ID of the Amazon Web Services account that owns the certificate.

*/ inline bool OwnedByHasBeenSet() const { return m_ownedByHasBeenSet; } /** *

The ID of the Amazon Web Services account that owns the certificate.

*/ inline void SetOwnedBy(const Aws::String& value) { m_ownedByHasBeenSet = true; m_ownedBy = value; } /** *

The ID of the Amazon Web Services account that owns the certificate.

*/ inline void SetOwnedBy(Aws::String&& value) { m_ownedByHasBeenSet = true; m_ownedBy = std::move(value); } /** *

The ID of the Amazon Web Services account that owns the certificate.

*/ inline void SetOwnedBy(const char* value) { m_ownedByHasBeenSet = true; m_ownedBy.assign(value); } /** *

The ID of the Amazon Web Services account that owns the certificate.

*/ inline CertificateDescription& WithOwnedBy(const Aws::String& value) { SetOwnedBy(value); return *this;} /** *

The ID of the Amazon Web Services account that owns the certificate.

*/ inline CertificateDescription& WithOwnedBy(Aws::String&& value) { SetOwnedBy(std::move(value)); return *this;} /** *

The ID of the Amazon Web Services account that owns the certificate.

*/ inline CertificateDescription& WithOwnedBy(const char* value) { SetOwnedBy(value); return *this;} /** *

The ID of the Amazon Web Services account of the previous owner of the * certificate.

*/ inline const Aws::String& GetPreviousOwnedBy() const{ return m_previousOwnedBy; } /** *

The ID of the Amazon Web Services account of the previous owner of the * certificate.

*/ inline bool PreviousOwnedByHasBeenSet() const { return m_previousOwnedByHasBeenSet; } /** *

The ID of the Amazon Web Services account of the previous owner of the * certificate.

*/ inline void SetPreviousOwnedBy(const Aws::String& value) { m_previousOwnedByHasBeenSet = true; m_previousOwnedBy = value; } /** *

The ID of the Amazon Web Services account of the previous owner of the * certificate.

*/ inline void SetPreviousOwnedBy(Aws::String&& value) { m_previousOwnedByHasBeenSet = true; m_previousOwnedBy = std::move(value); } /** *

The ID of the Amazon Web Services account of the previous owner of the * certificate.

*/ inline void SetPreviousOwnedBy(const char* value) { m_previousOwnedByHasBeenSet = true; m_previousOwnedBy.assign(value); } /** *

The ID of the Amazon Web Services account of the previous owner of the * certificate.

*/ inline CertificateDescription& WithPreviousOwnedBy(const Aws::String& value) { SetPreviousOwnedBy(value); return *this;} /** *

The ID of the Amazon Web Services account of the previous owner of the * certificate.

*/ inline CertificateDescription& WithPreviousOwnedBy(Aws::String&& value) { SetPreviousOwnedBy(std::move(value)); return *this;} /** *

The ID of the Amazon Web Services account of the previous owner of the * certificate.

*/ inline CertificateDescription& WithPreviousOwnedBy(const char* value) { SetPreviousOwnedBy(value); return *this;} /** *

The date and time the certificate was created.

*/ inline const Aws::Utils::DateTime& GetCreationDate() const{ return m_creationDate; } /** *

The date and time the certificate was created.

*/ inline bool CreationDateHasBeenSet() const { return m_creationDateHasBeenSet; } /** *

The date and time the certificate was created.

*/ inline void SetCreationDate(const Aws::Utils::DateTime& value) { m_creationDateHasBeenSet = true; m_creationDate = value; } /** *

The date and time the certificate was created.

*/ inline void SetCreationDate(Aws::Utils::DateTime&& value) { m_creationDateHasBeenSet = true; m_creationDate = std::move(value); } /** *

The date and time the certificate was created.

*/ inline CertificateDescription& WithCreationDate(const Aws::Utils::DateTime& value) { SetCreationDate(value); return *this;} /** *

The date and time the certificate was created.

*/ inline CertificateDescription& WithCreationDate(Aws::Utils::DateTime&& value) { SetCreationDate(std::move(value)); return *this;} /** *

The date and time the certificate was last modified.

*/ inline const Aws::Utils::DateTime& GetLastModifiedDate() const{ return m_lastModifiedDate; } /** *

The date and time the certificate was last modified.

*/ inline bool LastModifiedDateHasBeenSet() const { return m_lastModifiedDateHasBeenSet; } /** *

The date and time the certificate was last modified.

*/ inline void SetLastModifiedDate(const Aws::Utils::DateTime& value) { m_lastModifiedDateHasBeenSet = true; m_lastModifiedDate = value; } /** *

The date and time the certificate was last modified.

*/ inline void SetLastModifiedDate(Aws::Utils::DateTime&& value) { m_lastModifiedDateHasBeenSet = true; m_lastModifiedDate = std::move(value); } /** *

The date and time the certificate was last modified.

*/ inline CertificateDescription& WithLastModifiedDate(const Aws::Utils::DateTime& value) { SetLastModifiedDate(value); return *this;} /** *

The date and time the certificate was last modified.

*/ inline CertificateDescription& WithLastModifiedDate(Aws::Utils::DateTime&& value) { SetLastModifiedDate(std::move(value)); return *this;} /** *

The customer version of the certificate.

*/ inline int GetCustomerVersion() const{ return m_customerVersion; } /** *

The customer version of the certificate.

*/ inline bool CustomerVersionHasBeenSet() const { return m_customerVersionHasBeenSet; } /** *

The customer version of the certificate.

*/ inline void SetCustomerVersion(int value) { m_customerVersionHasBeenSet = true; m_customerVersion = value; } /** *

The customer version of the certificate.

*/ inline CertificateDescription& WithCustomerVersion(int value) { SetCustomerVersion(value); return *this;} /** *

The transfer data.

*/ inline const TransferData& GetTransferData() const{ return m_transferData; } /** *

The transfer data.

*/ inline bool TransferDataHasBeenSet() const { return m_transferDataHasBeenSet; } /** *

The transfer data.

*/ inline void SetTransferData(const TransferData& value) { m_transferDataHasBeenSet = true; m_transferData = value; } /** *

The transfer data.

*/ inline void SetTransferData(TransferData&& value) { m_transferDataHasBeenSet = true; m_transferData = std::move(value); } /** *

The transfer data.

*/ inline CertificateDescription& WithTransferData(const TransferData& value) { SetTransferData(value); return *this;} /** *

The transfer data.

*/ inline CertificateDescription& WithTransferData(TransferData&& value) { SetTransferData(std::move(value)); return *this;} /** *

The generation ID of the certificate.

*/ inline const Aws::String& GetGenerationId() const{ return m_generationId; } /** *

The generation ID of the certificate.

*/ inline bool GenerationIdHasBeenSet() const { return m_generationIdHasBeenSet; } /** *

The generation ID of the certificate.

*/ inline void SetGenerationId(const Aws::String& value) { m_generationIdHasBeenSet = true; m_generationId = value; } /** *

The generation ID of the certificate.

*/ inline void SetGenerationId(Aws::String&& value) { m_generationIdHasBeenSet = true; m_generationId = std::move(value); } /** *

The generation ID of the certificate.

*/ inline void SetGenerationId(const char* value) { m_generationIdHasBeenSet = true; m_generationId.assign(value); } /** *

The generation ID of the certificate.

*/ inline CertificateDescription& WithGenerationId(const Aws::String& value) { SetGenerationId(value); return *this;} /** *

The generation ID of the certificate.

*/ inline CertificateDescription& WithGenerationId(Aws::String&& value) { SetGenerationId(std::move(value)); return *this;} /** *

The generation ID of the certificate.

*/ inline CertificateDescription& WithGenerationId(const char* value) { SetGenerationId(value); return *this;} /** *

When the certificate is valid.

*/ inline const CertificateValidity& GetValidity() const{ return m_validity; } /** *

When the certificate is valid.

*/ inline bool ValidityHasBeenSet() const { return m_validityHasBeenSet; } /** *

When the certificate is valid.

*/ inline void SetValidity(const CertificateValidity& value) { m_validityHasBeenSet = true; m_validity = value; } /** *

When the certificate is valid.

*/ inline void SetValidity(CertificateValidity&& value) { m_validityHasBeenSet = true; m_validity = std::move(value); } /** *

When the certificate is valid.

*/ inline CertificateDescription& WithValidity(const CertificateValidity& value) { SetValidity(value); return *this;} /** *

When the certificate is valid.

*/ inline CertificateDescription& WithValidity(CertificateValidity&& value) { SetValidity(std::move(value)); return *this;} /** *

The mode of the certificate.

DEFAULT: A certificate in * DEFAULT mode is either generated by Amazon Web Services IoT Core or * registered with an issuer certificate authority (CA) in DEFAULT * mode. Devices with certificates in DEFAULT mode aren't required to * send the Server Name Indication (SNI) extension when connecting to Amazon Web * Services IoT Core. However, to use features such as custom domains and VPC * endpoints, we recommend that you use the SNI extension when connecting to Amazon * Web Services IoT Core.

SNI_ONLY: A certificate in * SNI_ONLY mode is registered without an issuer CA. Devices with * certificates in SNI_ONLY mode must send the SNI extension when * connecting to Amazon Web Services IoT Core.

For more information about * the value for SNI extension, see Transport * security in IoT.

*/ inline const CertificateMode& GetCertificateMode() const{ return m_certificateMode; } /** *

The mode of the certificate.

DEFAULT: A certificate in * DEFAULT mode is either generated by Amazon Web Services IoT Core or * registered with an issuer certificate authority (CA) in DEFAULT * mode. Devices with certificates in DEFAULT mode aren't required to * send the Server Name Indication (SNI) extension when connecting to Amazon Web * Services IoT Core. However, to use features such as custom domains and VPC * endpoints, we recommend that you use the SNI extension when connecting to Amazon * Web Services IoT Core.

SNI_ONLY: A certificate in * SNI_ONLY mode is registered without an issuer CA. Devices with * certificates in SNI_ONLY mode must send the SNI extension when * connecting to Amazon Web Services IoT Core.

For more information about * the value for SNI extension, see Transport * security in IoT.

*/ inline bool CertificateModeHasBeenSet() const { return m_certificateModeHasBeenSet; } /** *

The mode of the certificate.

DEFAULT: A certificate in * DEFAULT mode is either generated by Amazon Web Services IoT Core or * registered with an issuer certificate authority (CA) in DEFAULT * mode. Devices with certificates in DEFAULT mode aren't required to * send the Server Name Indication (SNI) extension when connecting to Amazon Web * Services IoT Core. However, to use features such as custom domains and VPC * endpoints, we recommend that you use the SNI extension when connecting to Amazon * Web Services IoT Core.

SNI_ONLY: A certificate in * SNI_ONLY mode is registered without an issuer CA. Devices with * certificates in SNI_ONLY mode must send the SNI extension when * connecting to Amazon Web Services IoT Core.

For more information about * the value for SNI extension, see Transport * security in IoT.

*/ inline void SetCertificateMode(const CertificateMode& value) { m_certificateModeHasBeenSet = true; m_certificateMode = value; } /** *

The mode of the certificate.

DEFAULT: A certificate in * DEFAULT mode is either generated by Amazon Web Services IoT Core or * registered with an issuer certificate authority (CA) in DEFAULT * mode. Devices with certificates in DEFAULT mode aren't required to * send the Server Name Indication (SNI) extension when connecting to Amazon Web * Services IoT Core. However, to use features such as custom domains and VPC * endpoints, we recommend that you use the SNI extension when connecting to Amazon * Web Services IoT Core.

SNI_ONLY: A certificate in * SNI_ONLY mode is registered without an issuer CA. Devices with * certificates in SNI_ONLY mode must send the SNI extension when * connecting to Amazon Web Services IoT Core.

For more information about * the value for SNI extension, see Transport * security in IoT.

*/ inline void SetCertificateMode(CertificateMode&& value) { m_certificateModeHasBeenSet = true; m_certificateMode = std::move(value); } /** *

The mode of the certificate.

DEFAULT: A certificate in * DEFAULT mode is either generated by Amazon Web Services IoT Core or * registered with an issuer certificate authority (CA) in DEFAULT * mode. Devices with certificates in DEFAULT mode aren't required to * send the Server Name Indication (SNI) extension when connecting to Amazon Web * Services IoT Core. However, to use features such as custom domains and VPC * endpoints, we recommend that you use the SNI extension when connecting to Amazon * Web Services IoT Core.

SNI_ONLY: A certificate in * SNI_ONLY mode is registered without an issuer CA. Devices with * certificates in SNI_ONLY mode must send the SNI extension when * connecting to Amazon Web Services IoT Core.

For more information about * the value for SNI extension, see Transport * security in IoT.

*/ inline CertificateDescription& WithCertificateMode(const CertificateMode& value) { SetCertificateMode(value); return *this;} /** *

The mode of the certificate.

DEFAULT: A certificate in * DEFAULT mode is either generated by Amazon Web Services IoT Core or * registered with an issuer certificate authority (CA) in DEFAULT * mode. Devices with certificates in DEFAULT mode aren't required to * send the Server Name Indication (SNI) extension when connecting to Amazon Web * Services IoT Core. However, to use features such as custom domains and VPC * endpoints, we recommend that you use the SNI extension when connecting to Amazon * Web Services IoT Core.

SNI_ONLY: A certificate in * SNI_ONLY mode is registered without an issuer CA. Devices with * certificates in SNI_ONLY mode must send the SNI extension when * connecting to Amazon Web Services IoT Core.

For more information about * the value for SNI extension, see Transport * security in IoT.

*/ inline CertificateDescription& WithCertificateMode(CertificateMode&& value) { SetCertificateMode(std::move(value)); return *this;} private: Aws::String m_certificateArn; bool m_certificateArnHasBeenSet = false; Aws::String m_certificateId; bool m_certificateIdHasBeenSet = false; Aws::String m_caCertificateId; bool m_caCertificateIdHasBeenSet = false; CertificateStatus m_status; bool m_statusHasBeenSet = false; Aws::String m_certificatePem; bool m_certificatePemHasBeenSet = false; Aws::String m_ownedBy; bool m_ownedByHasBeenSet = false; Aws::String m_previousOwnedBy; bool m_previousOwnedByHasBeenSet = false; Aws::Utils::DateTime m_creationDate; bool m_creationDateHasBeenSet = false; Aws::Utils::DateTime m_lastModifiedDate; bool m_lastModifiedDateHasBeenSet = false; int m_customerVersion; bool m_customerVersionHasBeenSet = false; TransferData m_transferData; bool m_transferDataHasBeenSet = false; Aws::String m_generationId; bool m_generationIdHasBeenSet = false; CertificateValidity m_validity; bool m_validityHasBeenSet = false; CertificateMode m_certificateMode; bool m_certificateModeHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws