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

Describes the certificate extensions to be added to the certificate signing * request (CSR).

See Also:

AWS * API Reference

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

Indicates the purpose of the certificate and of the key contained in the * certificate.

*/ inline const KeyUsage& GetKeyUsage() const{ return m_keyUsage; } /** *

Indicates the purpose of the certificate and of the key contained in the * certificate.

*/ inline bool KeyUsageHasBeenSet() const { return m_keyUsageHasBeenSet; } /** *

Indicates the purpose of the certificate and of the key contained in the * certificate.

*/ inline void SetKeyUsage(const KeyUsage& value) { m_keyUsageHasBeenSet = true; m_keyUsage = value; } /** *

Indicates the purpose of the certificate and of the key contained in the * certificate.

*/ inline void SetKeyUsage(KeyUsage&& value) { m_keyUsageHasBeenSet = true; m_keyUsage = std::move(value); } /** *

Indicates the purpose of the certificate and of the key contained in the * certificate.

*/ inline CsrExtensions& WithKeyUsage(const KeyUsage& value) { SetKeyUsage(value); return *this;} /** *

Indicates the purpose of the certificate and of the key contained in the * certificate.

*/ inline CsrExtensions& WithKeyUsage(KeyUsage&& value) { SetKeyUsage(std::move(value)); return *this;} /** *

For CA certificates, provides a path to additional information pertaining to * the CA, such as revocation and policy. For more information, see Subject * Information Access in RFC 5280.

*/ inline const Aws::Vector& GetSubjectInformationAccess() const{ return m_subjectInformationAccess; } /** *

For CA certificates, provides a path to additional information pertaining to * the CA, such as revocation and policy. For more information, see Subject * Information Access in RFC 5280.

*/ inline bool SubjectInformationAccessHasBeenSet() const { return m_subjectInformationAccessHasBeenSet; } /** *

For CA certificates, provides a path to additional information pertaining to * the CA, such as revocation and policy. For more information, see Subject * Information Access in RFC 5280.

*/ inline void SetSubjectInformationAccess(const Aws::Vector& value) { m_subjectInformationAccessHasBeenSet = true; m_subjectInformationAccess = value; } /** *

For CA certificates, provides a path to additional information pertaining to * the CA, such as revocation and policy. For more information, see Subject * Information Access in RFC 5280.

*/ inline void SetSubjectInformationAccess(Aws::Vector&& value) { m_subjectInformationAccessHasBeenSet = true; m_subjectInformationAccess = std::move(value); } /** *

For CA certificates, provides a path to additional information pertaining to * the CA, such as revocation and policy. For more information, see Subject * Information Access in RFC 5280.

*/ inline CsrExtensions& WithSubjectInformationAccess(const Aws::Vector& value) { SetSubjectInformationAccess(value); return *this;} /** *

For CA certificates, provides a path to additional information pertaining to * the CA, such as revocation and policy. For more information, see Subject * Information Access in RFC 5280.

*/ inline CsrExtensions& WithSubjectInformationAccess(Aws::Vector&& value) { SetSubjectInformationAccess(std::move(value)); return *this;} /** *

For CA certificates, provides a path to additional information pertaining to * the CA, such as revocation and policy. For more information, see Subject * Information Access in RFC 5280.

*/ inline CsrExtensions& AddSubjectInformationAccess(const AccessDescription& value) { m_subjectInformationAccessHasBeenSet = true; m_subjectInformationAccess.push_back(value); return *this; } /** *

For CA certificates, provides a path to additional information pertaining to * the CA, such as revocation and policy. For more information, see Subject * Information Access in RFC 5280.

*/ inline CsrExtensions& AddSubjectInformationAccess(AccessDescription&& value) { m_subjectInformationAccessHasBeenSet = true; m_subjectInformationAccess.push_back(std::move(value)); return *this; } private: KeyUsage m_keyUsage; bool m_keyUsageHasBeenSet = false; Aws::Vector m_subjectInformationAccess; bool m_subjectInformationAccessHasBeenSet = false; }; } // namespace Model } // namespace ACMPCA } // namespace Aws