/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Contains configuration information for your private certificate authority
* (CA). This includes information about the class of public key algorithm and the
* key pair that your private CA creates when it issues a certificate. It also
* includes the signature algorithm that it uses when issuing certificates, and its
* X.500 distinguished name. You must specify this information when you call the CreateCertificateAuthority
* action. See Also:
AWS
* API Reference
Type of the public key algorithm and size, in bits, of the key pair that your * CA creates when it issues a certificate. When you create a subordinate CA, you * must use a key algorithm supported by the parent CA.
*/ inline const KeyAlgorithm& GetKeyAlgorithm() const{ return m_keyAlgorithm; } /** *Type of the public key algorithm and size, in bits, of the key pair that your * CA creates when it issues a certificate. When you create a subordinate CA, you * must use a key algorithm supported by the parent CA.
*/ inline bool KeyAlgorithmHasBeenSet() const { return m_keyAlgorithmHasBeenSet; } /** *Type of the public key algorithm and size, in bits, of the key pair that your * CA creates when it issues a certificate. When you create a subordinate CA, you * must use a key algorithm supported by the parent CA.
*/ inline void SetKeyAlgorithm(const KeyAlgorithm& value) { m_keyAlgorithmHasBeenSet = true; m_keyAlgorithm = value; } /** *Type of the public key algorithm and size, in bits, of the key pair that your * CA creates when it issues a certificate. When you create a subordinate CA, you * must use a key algorithm supported by the parent CA.
*/ inline void SetKeyAlgorithm(KeyAlgorithm&& value) { m_keyAlgorithmHasBeenSet = true; m_keyAlgorithm = std::move(value); } /** *Type of the public key algorithm and size, in bits, of the key pair that your * CA creates when it issues a certificate. When you create a subordinate CA, you * must use a key algorithm supported by the parent CA.
*/ inline CertificateAuthorityConfiguration& WithKeyAlgorithm(const KeyAlgorithm& value) { SetKeyAlgorithm(value); return *this;} /** *Type of the public key algorithm and size, in bits, of the key pair that your * CA creates when it issues a certificate. When you create a subordinate CA, you * must use a key algorithm supported by the parent CA.
*/ inline CertificateAuthorityConfiguration& WithKeyAlgorithm(KeyAlgorithm&& value) { SetKeyAlgorithm(std::move(value)); return *this;} /** *Name of the algorithm your private CA uses to sign certificate requests.
*This parameter should not be confused with the SigningAlgorithm
* parameter used to sign certificates when they are issued.
Name of the algorithm your private CA uses to sign certificate requests.
*This parameter should not be confused with the SigningAlgorithm
* parameter used to sign certificates when they are issued.
Name of the algorithm your private CA uses to sign certificate requests.
*This parameter should not be confused with the SigningAlgorithm
* parameter used to sign certificates when they are issued.
Name of the algorithm your private CA uses to sign certificate requests.
*This parameter should not be confused with the SigningAlgorithm
* parameter used to sign certificates when they are issued.
Name of the algorithm your private CA uses to sign certificate requests.
*This parameter should not be confused with the SigningAlgorithm
* parameter used to sign certificates when they are issued.
Name of the algorithm your private CA uses to sign certificate requests.
*This parameter should not be confused with the SigningAlgorithm
* parameter used to sign certificates when they are issued.
Structure that contains X.500 distinguished name information for your private * CA.
*/ inline const ASN1Subject& GetSubject() const{ return m_subject; } /** *Structure that contains X.500 distinguished name information for your private * CA.
*/ inline bool SubjectHasBeenSet() const { return m_subjectHasBeenSet; } /** *Structure that contains X.500 distinguished name information for your private * CA.
*/ inline void SetSubject(const ASN1Subject& value) { m_subjectHasBeenSet = true; m_subject = value; } /** *Structure that contains X.500 distinguished name information for your private * CA.
*/ inline void SetSubject(ASN1Subject&& value) { m_subjectHasBeenSet = true; m_subject = std::move(value); } /** *Structure that contains X.500 distinguished name information for your private * CA.
*/ inline CertificateAuthorityConfiguration& WithSubject(const ASN1Subject& value) { SetSubject(value); return *this;} /** *Structure that contains X.500 distinguished name information for your private * CA.
*/ inline CertificateAuthorityConfiguration& WithSubject(ASN1Subject&& value) { SetSubject(std::move(value)); return *this;} /** *Specifies information to be added to the extension section of the certificate * signing request (CSR).
*/ inline const CsrExtensions& GetCsrExtensions() const{ return m_csrExtensions; } /** *Specifies information to be added to the extension section of the certificate * signing request (CSR).
*/ inline bool CsrExtensionsHasBeenSet() const { return m_csrExtensionsHasBeenSet; } /** *Specifies information to be added to the extension section of the certificate * signing request (CSR).
*/ inline void SetCsrExtensions(const CsrExtensions& value) { m_csrExtensionsHasBeenSet = true; m_csrExtensions = value; } /** *Specifies information to be added to the extension section of the certificate * signing request (CSR).
*/ inline void SetCsrExtensions(CsrExtensions&& value) { m_csrExtensionsHasBeenSet = true; m_csrExtensions = std::move(value); } /** *Specifies information to be added to the extension section of the certificate * signing request (CSR).
*/ inline CertificateAuthorityConfiguration& WithCsrExtensions(const CsrExtensions& value) { SetCsrExtensions(value); return *this;} /** *Specifies information to be added to the extension section of the certificate * signing request (CSR).
*/ inline CertificateAuthorityConfiguration& WithCsrExtensions(CsrExtensions&& value) { SetCsrExtensions(std::move(value)); return *this;} private: KeyAlgorithm m_keyAlgorithm; bool m_keyAlgorithmHasBeenSet = false; SigningAlgorithm m_signingAlgorithm; bool m_signingAlgorithmHasBeenSet = false; ASN1Subject m_subject; bool m_subjectHasBeenSet = false; CsrExtensions m_csrExtensions; bool m_csrExtensionsHasBeenSet = false; }; } // namespace Model } // namespace ACMPCA } // namespace Aws