/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the acm-pca-2017-08-22.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.ACMPCA.Model
{
///
/// Container for the parameters to the CreateCertificateAuthority operation.
/// Creates a root or subordinate private certificate authority (CA). You must specify
/// the CA configuration, an optional configuration for Online Certificate Status Protocol
/// (OCSP) and/or a certificate revocation list (CRL), the CA type, and an optional idempotency
/// token to avoid accidental creation of multiple CAs. The CA configuration specifies
/// the name of the algorithm and key size to be used to create the CA private key, the
/// type of signing algorithm that the CA uses, and X.500 subject information. The OCSP
/// configuration can optionally specify a custom URL for the OCSP responder. The CRL
/// configuration specifies the CRL expiration period in days (the validity period of
/// the CRL), the Amazon S3 bucket that will contain the CRL, and a CNAME alias for the
/// S3 bucket that is included in certificates issued by the CA. If successful, this action
/// returns the Amazon Resource Name (ARN) of the CA.
///
///
///
/// Both Amazon Web Services Private CA and the IAM principal must have permission to
/// write to the S3 bucket that you specify. If the IAM principal making the call does
/// not have permission to write to the bucket, then an exception is thrown. For more
/// information, see Access
/// policies for CRLs in Amazon S3.
///
///
///
/// Amazon Web Services Private CA assets that are stored in Amazon S3 can be protected
/// with encryption. For more information, see Encrypting
/// Your CRLs.
///
///
public partial class CreateCertificateAuthorityRequest : AmazonACMPCARequest
{
private CertificateAuthorityConfiguration _certificateAuthorityConfiguration;
private CertificateAuthorityType _certificateAuthorityType;
private string _idempotencyToken;
private KeyStorageSecurityStandard _keyStorageSecurityStandard;
private RevocationConfiguration _revocationConfiguration;
private List _tags = new List();
private CertificateAuthorityUsageMode _usageMode;
///
/// Gets and sets the property CertificateAuthorityConfiguration.
///
/// Name and bit size of the private key algorithm, the name of the signing algorithm,
/// and X.500 certificate subject information.
///
///
[AWSProperty(Required=true)]
public CertificateAuthorityConfiguration CertificateAuthorityConfiguration
{
get { return this._certificateAuthorityConfiguration; }
set { this._certificateAuthorityConfiguration = value; }
}
// Check to see if CertificateAuthorityConfiguration property is set
internal bool IsSetCertificateAuthorityConfiguration()
{
return this._certificateAuthorityConfiguration != null;
}
///
/// Gets and sets the property CertificateAuthorityType.
///
/// The type of the certificate authority.
///
///
[AWSProperty(Required=true)]
public CertificateAuthorityType CertificateAuthorityType
{
get { return this._certificateAuthorityType; }
set { this._certificateAuthorityType = value; }
}
// Check to see if CertificateAuthorityType property is set
internal bool IsSetCertificateAuthorityType()
{
return this._certificateAuthorityType != null;
}
///
/// Gets and sets the property IdempotencyToken.
///
/// Custom string that can be used to distinguish between calls to the CreateCertificateAuthority
/// action. Idempotency tokens for CreateCertificateAuthority time out after five
/// minutes. Therefore, if you call CreateCertificateAuthority multiple times with
/// the same idempotency token within five minutes, Amazon Web Services Private CA recognizes
/// that you are requesting only certificate authority and will issue only one. If you
/// change the idempotency token for each call, Amazon Web Services Private CA recognizes
/// that you are requesting multiple certificate authorities.
///
///
[AWSProperty(Min=1, Max=36)]
public string IdempotencyToken
{
get { return this._idempotencyToken; }
set { this._idempotencyToken = value; }
}
// Check to see if IdempotencyToken property is set
internal bool IsSetIdempotencyToken()
{
return this._idempotencyToken != null;
}
///
/// Gets and sets the property KeyStorageSecurityStandard.
///
/// Specifies a cryptographic key management compliance standard used for handling CA
/// keys.
///
///
///
/// Default: FIPS_140_2_LEVEL_3_OR_HIGHER
///
///
///
/// Some Amazon Web Services Regions do not support the default. When creating a CA in
/// these Regions, you must provide FIPS_140_2_LEVEL_2_OR_HIGHER
as the argument
/// for KeyStorageSecurityStandard
. Failure to do this results in an InvalidArgsException
/// with the message, "A certificate authority cannot be created in this region with the
/// specified security standard."
///
///
///
/// For information about security standard support in various Regions, see Storage
/// and security compliance of Amazon Web Services Private CA private keys.
///
///
///
public KeyStorageSecurityStandard KeyStorageSecurityStandard
{
get { return this._keyStorageSecurityStandard; }
set { this._keyStorageSecurityStandard = value; }
}
// Check to see if KeyStorageSecurityStandard property is set
internal bool IsSetKeyStorageSecurityStandard()
{
return this._keyStorageSecurityStandard != null;
}
///
/// Gets and sets the property RevocationConfiguration.
///
/// Contains information to enable Online Certificate Status Protocol (OCSP) support,
/// to enable a certificate revocation list (CRL), to enable both, or to enable neither.
/// The default is for both certificate validation mechanisms to be disabled.
///
///
///
/// The following requirements apply to revocation configurations.
///
/// -
///
/// A configuration disabling CRLs or OCSP must contain only the
Enabled=False
/// parameter, and will fail if other parameters such as CustomCname
or ExpirationInDays
/// are included.
///
/// -
///
/// In a CRL configuration, the
S3BucketName
parameter must conform to Amazon
/// S3 bucket naming rules.
///
/// -
///
/// A configuration containing a custom Canonical Name (CNAME) parameter for CRLs or OCSP
/// must conform to RFC2396 restrictions
/// on the use of special characters in a CNAME.
///
///
-
///
/// In a CRL or OCSP configuration, the value of a CNAME parameter must not include a
/// protocol prefix such as "http://" or "https://".
///
///
///
/// For more information, see the OcspConfiguration
/// and CrlConfiguration
/// types.
///
///
public RevocationConfiguration RevocationConfiguration
{
get { return this._revocationConfiguration; }
set { this._revocationConfiguration = value; }
}
// Check to see if RevocationConfiguration property is set
internal bool IsSetRevocationConfiguration()
{
return this._revocationConfiguration != null;
}
///
/// Gets and sets the property Tags.
///
/// Key-value pairs that will be attached to the new private CA. You can associate up
/// to 50 tags with a private CA. For information using tags with IAM to manage permissions,
/// see Controlling
/// Access Using IAM Tags.
///
///
[AWSProperty(Min=1, Max=50)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property UsageMode.
///
/// Specifies whether the CA issues general-purpose certificates that typically require
/// a revocation mechanism, or short-lived certificates that may optionally omit revocation
/// because they expire quickly. Short-lived certificate validity is limited to seven
/// days.
///
///
///
/// The default value is GENERAL_PURPOSE.
///
///
public CertificateAuthorityUsageMode UsageMode
{
get { return this._usageMode; }
set { this._usageMode = value; }
}
// Check to see if UsageMode property is set
internal bool IsSetUsageMode()
{
return this._usageMode != null;
}
}
}