/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace IoT { namespace Model { /** *

Information about a certificate.

See Also:

AWS API * Reference

*/ class Certificate { public: AWS_IOT_API Certificate(); AWS_IOT_API Certificate(Aws::Utils::Json::JsonView jsonValue); AWS_IOT_API Certificate& 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 Certificate& WithCertificateArn(const Aws::String& value) { SetCertificateArn(value); return *this;} /** *

The ARN of the certificate.

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

The ARN of the certificate.

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

The ID of the certificate. (The last part of the certificate ARN contains the * certificate ID.)

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

The ID of the certificate. (The last part of the certificate ARN contains the * certificate ID.)

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

The ID of the certificate. (The last part of the certificate ARN contains the * certificate ID.)

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

The ID of the certificate. (The last part of the certificate ARN contains the * certificate ID.)

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

The ID of the certificate. (The last part of the certificate ARN contains the * certificate ID.)

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

The ID of the certificate. (The last part of the certificate ARN contains the * certificate ID.)

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

The ID of the certificate. (The last part of the certificate ARN contains the * certificate ID.)

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

The ID of the certificate. (The last part of the certificate ARN contains the * certificate ID.)

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

The status of the certificate.

The status value REGISTER_INACTIVE is * deprecated and should not be used.

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

The status of the certificate.

The status value REGISTER_INACTIVE is * deprecated and should not be used.

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

The status of the certificate.

The status value REGISTER_INACTIVE is * deprecated and should not be used.

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

The status of the certificate.

The status value REGISTER_INACTIVE is * deprecated and should not be used.

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

The status of the certificate.

The status value REGISTER_INACTIVE is * deprecated and should not be used.

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

The status of the certificate.

The status value REGISTER_INACTIVE is * deprecated and should not be used.

*/ inline Certificate& WithStatus(CertificateStatus&& value) { SetStatus(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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ inline Certificate& 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.

*/ inline Certificate& WithCertificateMode(CertificateMode&& value) { SetCertificateMode(std::move(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 Certificate& WithCreationDate(const Aws::Utils::DateTime& value) { SetCreationDate(value); return *this;} /** *

The date and time the certificate was created.

*/ inline Certificate& WithCreationDate(Aws::Utils::DateTime&& value) { SetCreationDate(std::move(value)); return *this;} private: Aws::String m_certificateArn; bool m_certificateArnHasBeenSet = false; Aws::String m_certificateId; bool m_certificateIdHasBeenSet = false; CertificateStatus m_status; bool m_statusHasBeenSet = false; CertificateMode m_certificateMode; bool m_certificateModeHasBeenSet = false; Aws::Utils::DateTime m_creationDate; bool m_creationDateHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws