/*
* 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-2015-12-08.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.CertificateManager.Model
{
///
/// Contains metadata about an ACM certificate. This structure is returned in the response
/// to a DescribeCertificate request.
///
public partial class CertificateDetail
{
private string _certificateArn;
private string _certificateAuthorityArn;
private DateTime? _createdAt;
private string _domainName;
private List _domainValidationOptions = new List();
private List _extendedKeyUsages = new List();
private FailureReason _failureReason;
private DateTime? _importedAt;
private List _inUseBy = new List();
private DateTime? _issuedAt;
private string _issuer;
private KeyAlgorithm _keyAlgorithm;
private List _keyUsages = new List();
private DateTime? _notAfter;
private DateTime? _notBefore;
private CertificateOptions _options;
private RenewalEligibility _renewalEligibility;
private RenewalSummary _renewalSummary;
private RevocationReason _revocationReason;
private DateTime? _revokedAt;
private string _serial;
private string _signatureAlgorithm;
private CertificateStatus _status;
private string _subject;
private List _subjectAlternativeNames = new List();
private CertificateType _type;
///
/// Gets and sets the property CertificateArn.
///
/// The Amazon Resource Name (ARN) of the certificate. For more information about ARNs,
/// see Amazon
/// Resource Names (ARNs) in the Amazon Web Services General Reference.
///
///
[AWSProperty(Min=20, Max=2048)]
public string CertificateArn
{
get { return this._certificateArn; }
set { this._certificateArn = value; }
}
// Check to see if CertificateArn property is set
internal bool IsSetCertificateArn()
{
return this._certificateArn != null;
}
///
/// Gets and sets the property CertificateAuthorityArn.
///
/// The Amazon Resource Name (ARN) of the private certificate authority (CA) that issued
/// the certificate. This has the following format:
///
///
///
/// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
///
///
///
[AWSProperty(Min=20, Max=2048)]
public string CertificateAuthorityArn
{
get { return this._certificateAuthorityArn; }
set { this._certificateAuthorityArn = value; }
}
// Check to see if CertificateAuthorityArn property is set
internal bool IsSetCertificateAuthorityArn()
{
return this._certificateAuthorityArn != null;
}
///
/// Gets and sets the property CreatedAt.
///
/// The time at which the certificate was requested.
///
///
public DateTime CreatedAt
{
get { return this._createdAt.GetValueOrDefault(); }
set { this._createdAt = value; }
}
// Check to see if CreatedAt property is set
internal bool IsSetCreatedAt()
{
return this._createdAt.HasValue;
}
///
/// Gets and sets the property DomainName.
///
/// The fully qualified domain name for the certificate, such as www.example.com or example.com.
///
///
[AWSProperty(Min=1, Max=253)]
public string DomainName
{
get { return this._domainName; }
set { this._domainName = value; }
}
// Check to see if DomainName property is set
internal bool IsSetDomainName()
{
return this._domainName != null;
}
///
/// Gets and sets the property DomainValidationOptions.
///
/// Contains information about the initial validation of each domain name that occurs
/// as a result of the RequestCertificate request. This field exists only when
/// the certificate type is AMAZON_ISSUED
.
///
///
[AWSProperty(Min=1, Max=1000)]
public List DomainValidationOptions
{
get { return this._domainValidationOptions; }
set { this._domainValidationOptions = value; }
}
// Check to see if DomainValidationOptions property is set
internal bool IsSetDomainValidationOptions()
{
return this._domainValidationOptions != null && this._domainValidationOptions.Count > 0;
}
///
/// Gets and sets the property ExtendedKeyUsages.
///
/// Contains a list of Extended Key Usage X.509 v3 extension objects. Each object specifies
/// a purpose for which the certificate public key can be used and consists of a name
/// and an object identifier (OID).
///
///
public List ExtendedKeyUsages
{
get { return this._extendedKeyUsages; }
set { this._extendedKeyUsages = value; }
}
// Check to see if ExtendedKeyUsages property is set
internal bool IsSetExtendedKeyUsages()
{
return this._extendedKeyUsages != null && this._extendedKeyUsages.Count > 0;
}
///
/// Gets and sets the property FailureReason.
///
/// The reason the certificate request failed. This value exists only when the certificate
/// status is FAILED
. For more information, see Certificate
/// Request Failed in the Certificate Manager User Guide.
///
///
public FailureReason FailureReason
{
get { return this._failureReason; }
set { this._failureReason = value; }
}
// Check to see if FailureReason property is set
internal bool IsSetFailureReason()
{
return this._failureReason != null;
}
///
/// Gets and sets the property ImportedAt.
///
/// The date and time when the certificate was imported. This value exists only when the
/// certificate type is IMPORTED
.
///
///
public DateTime ImportedAt
{
get { return this._importedAt.GetValueOrDefault(); }
set { this._importedAt = value; }
}
// Check to see if ImportedAt property is set
internal bool IsSetImportedAt()
{
return this._importedAt.HasValue;
}
///
/// Gets and sets the property InUseBy.
///
/// A list of ARNs for the Amazon Web Services resources that are using the certificate.
/// A certificate can be used by multiple Amazon Web Services resources.
///
///
public List InUseBy
{
get { return this._inUseBy; }
set { this._inUseBy = value; }
}
// Check to see if InUseBy property is set
internal bool IsSetInUseBy()
{
return this._inUseBy != null && this._inUseBy.Count > 0;
}
///
/// Gets and sets the property IssuedAt.
///
/// The time at which the certificate was issued. This value exists only when the certificate
/// type is AMAZON_ISSUED
.
///
///
public DateTime IssuedAt
{
get { return this._issuedAt.GetValueOrDefault(); }
set { this._issuedAt = value; }
}
// Check to see if IssuedAt property is set
internal bool IsSetIssuedAt()
{
return this._issuedAt.HasValue;
}
///
/// Gets and sets the property Issuer.
///
/// The name of the certificate authority that issued and signed the certificate.
///
///
public string Issuer
{
get { return this._issuer; }
set { this._issuer = value; }
}
// Check to see if Issuer property is set
internal bool IsSetIssuer()
{
return this._issuer != null;
}
///
/// Gets and sets the property KeyAlgorithm.
///
/// The algorithm that was used to generate the public-private key pair.
///
///
public KeyAlgorithm KeyAlgorithm
{
get { return this._keyAlgorithm; }
set { this._keyAlgorithm = value; }
}
// Check to see if KeyAlgorithm property is set
internal bool IsSetKeyAlgorithm()
{
return this._keyAlgorithm != null;
}
///
/// Gets and sets the property KeyUsages.
///
/// A list of Key Usage X.509 v3 extension objects. Each object is a string value that
/// identifies the purpose of the public key contained in the certificate. Possible extension
/// values include DIGITAL_SIGNATURE, KEY_ENCHIPHERMENT, NON_REPUDIATION, and more.
///
///
public List KeyUsages
{
get { return this._keyUsages; }
set { this._keyUsages = value; }
}
// Check to see if KeyUsages property is set
internal bool IsSetKeyUsages()
{
return this._keyUsages != null && this._keyUsages.Count > 0;
}
///
/// Gets and sets the property NotAfter.
///
/// The time after which the certificate is not valid.
///
///
public DateTime NotAfter
{
get { return this._notAfter.GetValueOrDefault(); }
set { this._notAfter = value; }
}
// Check to see if NotAfter property is set
internal bool IsSetNotAfter()
{
return this._notAfter.HasValue;
}
///
/// Gets and sets the property NotBefore.
///
/// The time before which the certificate is not valid.
///
///
public DateTime NotBefore
{
get { return this._notBefore.GetValueOrDefault(); }
set { this._notBefore = value; }
}
// Check to see if NotBefore property is set
internal bool IsSetNotBefore()
{
return this._notBefore.HasValue;
}
///
/// Gets and sets the property Options.
///
/// Value that specifies whether to add the certificate to a transparency log. Certificate
/// transparency makes it possible to detect SSL certificates that have been mistakenly
/// or maliciously issued. A browser might respond to certificate that has not been logged
/// by showing an error message. The logs are cryptographically secure.
///
///
public CertificateOptions Options
{
get { return this._options; }
set { this._options = value; }
}
// Check to see if Options property is set
internal bool IsSetOptions()
{
return this._options != null;
}
///
/// Gets and sets the property RenewalEligibility.
///
/// Specifies whether the certificate is eligible for renewal. At this time, only exported
/// private certificates can be renewed with the RenewCertificate command.
///
///
public RenewalEligibility RenewalEligibility
{
get { return this._renewalEligibility; }
set { this._renewalEligibility = value; }
}
// Check to see if RenewalEligibility property is set
internal bool IsSetRenewalEligibility()
{
return this._renewalEligibility != null;
}
///
/// Gets and sets the property RenewalSummary.
///
/// Contains information about the status of ACM's managed
/// renewal for the certificate. This field exists only when the certificate type
/// is AMAZON_ISSUED
.
///
///
public RenewalSummary RenewalSummary
{
get { return this._renewalSummary; }
set { this._renewalSummary = value; }
}
// Check to see if RenewalSummary property is set
internal bool IsSetRenewalSummary()
{
return this._renewalSummary != null;
}
///
/// Gets and sets the property RevocationReason.
///
/// The reason the certificate was revoked. This value exists only when the certificate
/// status is REVOKED
.
///
///
public RevocationReason RevocationReason
{
get { return this._revocationReason; }
set { this._revocationReason = value; }
}
// Check to see if RevocationReason property is set
internal bool IsSetRevocationReason()
{
return this._revocationReason != null;
}
///
/// Gets and sets the property RevokedAt.
///
/// The time at which the certificate was revoked. This value exists only when the certificate
/// status is REVOKED
.
///
///
public DateTime RevokedAt
{
get { return this._revokedAt.GetValueOrDefault(); }
set { this._revokedAt = value; }
}
// Check to see if RevokedAt property is set
internal bool IsSetRevokedAt()
{
return this._revokedAt.HasValue;
}
///
/// Gets and sets the property Serial.
///
/// The serial number of the certificate.
///
///
public string Serial
{
get { return this._serial; }
set { this._serial = value; }
}
// Check to see if Serial property is set
internal bool IsSetSerial()
{
return this._serial != null;
}
///
/// Gets and sets the property SignatureAlgorithm.
///
/// The algorithm that was used to sign the certificate.
///
///
public string SignatureAlgorithm
{
get { return this._signatureAlgorithm; }
set { this._signatureAlgorithm = value; }
}
// Check to see if SignatureAlgorithm property is set
internal bool IsSetSignatureAlgorithm()
{
return this._signatureAlgorithm != null;
}
///
/// Gets and sets the property Status.
///
/// The status of the certificate.
///
///
///
/// A certificate enters status PENDING_VALIDATION upon being requested, unless it fails
/// for any of the reasons given in the troubleshooting topic Certificate
/// request fails. ACM makes repeated attempts to validate a certificate for 72 hours
/// and then times out. If a certificate shows status FAILED or VALIDATION_TIMED_OUT,
/// delete the request, correct the issue with DNS
/// validation or Email
/// validation, and try again. If validation succeeds, the certificate enters status
/// ISSUED.
///
///
public CertificateStatus Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
///
/// Gets and sets the property Subject.
///
/// The name of the entity that is associated with the public key contained in the certificate.
///
///
public string Subject
{
get { return this._subject; }
set { this._subject = value; }
}
// Check to see if Subject property is set
internal bool IsSetSubject()
{
return this._subject != null;
}
///
/// Gets and sets the property SubjectAlternativeNames.
///
/// One or more domain names (subject alternative names) included in the certificate.
/// This list contains the domain names that are bound to the public key that is contained
/// in the certificate. The subject alternative names include the canonical domain name
/// (CN) of the certificate and additional domain names that can be used to connect to
/// the website.
///
///
[AWSProperty(Min=1, Max=100)]
public List SubjectAlternativeNames
{
get { return this._subjectAlternativeNames; }
set { this._subjectAlternativeNames = value; }
}
// Check to see if SubjectAlternativeNames property is set
internal bool IsSetSubjectAlternativeNames()
{
return this._subjectAlternativeNames != null && this._subjectAlternativeNames.Count > 0;
}
///
/// Gets and sets the property Type.
///
/// The source of the certificate. For certificates provided by ACM, this value is AMAZON_ISSUED
.
/// For certificates that you imported with ImportCertificate, this value is IMPORTED
.
/// ACM does not provide managed
/// renewal for imported certificates. For more information about the differences
/// between certificates that you import and those that ACM provides, see Importing
/// Certificates in the Certificate Manager User Guide.
///
///
public CertificateType Type
{
get { return this._type; }
set { this._type = value; }
}
// Check to see if Type property is set
internal bool IsSetType()
{
return this._type != null;
}
}
}