/*
* 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 lightsail-2016-11-28.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.Lightsail.Model
{
///
/// Describes a load balancer SSL/TLS certificate.
///
///
///
/// TLS is just an updated, more secure version of Secure Socket Layer (SSL).
///
///
public partial class LoadBalancerTlsCertificate
{
private string _arn;
private DateTime? _createdAt;
private string _domainName;
private List _domainValidationRecords = new List();
private LoadBalancerTlsCertificateFailureReason _failureReason;
private bool? _isAttached;
private DateTime? _issuedAt;
private string _issuer;
private string _keyAlgorithm;
private string _loadBalancerName;
private ResourceLocation _location;
private string _name;
private DateTime? _notAfter;
private DateTime? _notBefore;
private LoadBalancerTlsCertificateRenewalSummary _renewalSummary;
private ResourceType _resourceType;
private LoadBalancerTlsCertificateRevocationReason _revocationReason;
private DateTime? _revokedAt;
private string _serial;
private string _signatureAlgorithm;
private LoadBalancerTlsCertificateStatus _status;
private string _subject;
private List _subjectAlternativeNames = new List();
private string _supportCode;
private List _tags = new List();
///
/// Gets and sets the property Arn.
///
/// The Amazon Resource Name (ARN) of the SSL/TLS certificate.
///
///
public string Arn
{
get { return this._arn; }
set { this._arn = value; }
}
// Check to see if Arn property is set
internal bool IsSetArn()
{
return this._arn != null;
}
///
/// Gets and sets the property CreatedAt.
///
/// The time when you created your SSL/TLS certificate.
///
///
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 domain name for your SSL/TLS certificate.
///
///
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 DomainValidationRecords.
///
/// An array of LoadBalancerTlsCertificateDomainValidationRecord objects describing the
/// records.
///
///
public List DomainValidationRecords
{
get { return this._domainValidationRecords; }
set { this._domainValidationRecords = value; }
}
// Check to see if DomainValidationRecords property is set
internal bool IsSetDomainValidationRecords()
{
return this._domainValidationRecords != null && this._domainValidationRecords.Count > 0;
}
///
/// Gets and sets the property FailureReason.
///
/// The validation failure reason, if any, of the certificate.
///
///
///
/// The following failure reasons are possible:
///
/// -
///
///
NO_AVAILABLE_CONTACTS
- This failure applies to email validation,
/// which is not available for Lightsail certificates.
///
/// -
///
///
ADDITIONAL_VERIFICATION_REQUIRED
- Lightsail requires additional
/// information to process this certificate request. This can happen as a fraud-protection
/// measure, such as when the domain ranks within the Alexa top 1000 websites. To provide
/// the required information, use the AWS
/// Support Center to contact AWS Support.
///
///
///
/// You cannot request a certificate for Amazon-owned domain names such as those ending
/// in amazonaws.com, cloudfront.net, or elasticbeanstalk.com.
///
/// -
///
///
DOMAIN_NOT_ALLOWED
- One or more of the domain names in the
/// certificate request was reported as an unsafe domain by VirusTotal.
/// To correct the problem, search for your domain name on the VirusTotal
/// website. If your domain is reported as suspicious, see Google
/// Help for Hacked Websites to learn what you can do.
///
///
///
/// If you believe that the result is a false positive, notify the organization that is
/// reporting the domain. VirusTotal is an aggregate of several antivirus and URL scanners
/// and cannot remove your domain from a block list itself. After you correct the problem
/// and the VirusTotal registry has been updated, request a new certificate.
///
///
///
/// If you see this error and your domain is not included in the VirusTotal list, visit
/// the AWS Support Center and
/// create a case.
///
/// -
///
///
INVALID_PUBLIC_DOMAIN
- One or more of the domain names in
/// the certificate request is not valid. Typically, this is because a domain name in
/// the request is not a valid top-level domain. Try to request a certificate again, correcting
/// any spelling errors or typos that were in the failed request, and ensure that all
/// domain names in the request are for valid top-level domains. For example, you cannot
/// request a certificate for example.invalidpublicdomain
because invalidpublicdomain
/// is not a valid top-level domain.
///
/// -
///
///
OTHER
- Typically, this failure occurs when there is a typographical
/// error in one or more of the domain names in the certificate request. Try to request
/// a certificate again, correcting any spelling errors or typos that were in the failed
/// request.
///
///
///
public LoadBalancerTlsCertificateFailureReason 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 IsAttached.
///
/// When true
, the SSL/TLS certificate is attached to the Lightsail load
/// balancer.
///
///
public bool IsAttached
{
get { return this._isAttached.GetValueOrDefault(); }
set { this._isAttached = value; }
}
// Check to see if IsAttached property is set
internal bool IsSetIsAttached()
{
return this._isAttached.HasValue;
}
///
/// Gets and sets the property IssuedAt.
///
/// The time when the SSL/TLS certificate was 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 issuer of 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 used to generate the key pair (the public and private key).
///
///
public string 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 LoadBalancerName.
///
/// The load balancer name where your SSL/TLS certificate is attached.
///
///
public string LoadBalancerName
{
get { return this._loadBalancerName; }
set { this._loadBalancerName = value; }
}
// Check to see if LoadBalancerName property is set
internal bool IsSetLoadBalancerName()
{
return this._loadBalancerName != null;
}
///
/// Gets and sets the property Location.
///
/// The Amazon Web Services Region and Availability Zone where you created your certificate.
///
///
public ResourceLocation Location
{
get { return this._location; }
set { this._location = value; }
}
// Check to see if Location property is set
internal bool IsSetLocation()
{
return this._location != null;
}
///
/// Gets and sets the property Name.
///
/// The name of the SSL/TLS certificate (e.g., my-certificate
).
///
///
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property NotAfter.
///
/// The timestamp when the SSL/TLS certificate expires.
///
///
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 timestamp when the SSL/TLS certificate is first 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 RenewalSummary.
///
/// An object that describes the status of the certificate renewal managed by Lightsail.
///
///
public LoadBalancerTlsCertificateRenewalSummary 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 ResourceType.
///
/// The resource type (e.g., LoadBalancerTlsCertificate
).
///
/// -
///
///
Instance
- A Lightsail instance (a virtual private server)
///
/// -
///
///
StaticIp
- A static IP address
///
/// -
///
///
KeyPair
- The key pair used to connect to a Lightsail instance
///
/// -
///
///
InstanceSnapshot
- A Lightsail instance snapshot
///
/// -
///
///
Domain
- A DNS zone
///
/// -
///
///
PeeredVpc
- A peered VPC
///
/// -
///
///
LoadBalancer
- A Lightsail load balancer
///
/// -
///
///
LoadBalancerTlsCertificate
- An SSL/TLS certificate associated
/// with a Lightsail load balancer
///
/// -
///
///
Disk
- A Lightsail block storage disk
///
/// -
///
///
DiskSnapshot
- A block storage disk snapshot
///
///
///
public ResourceType ResourceType
{
get { return this._resourceType; }
set { this._resourceType = value; }
}
// Check to see if ResourceType property is set
internal bool IsSetResourceType()
{
return this._resourceType != null;
}
///
/// Gets and sets the property RevocationReason.
///
/// The reason the certificate was revoked. This value is present only when the certificate
/// status is REVOKED
.
///
///
public LoadBalancerTlsCertificateRevocationReason 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 timestamp when the certificate was revoked. This value is present 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 validation status of the SSL/TLS certificate. Valid values are below.
///
///
public LoadBalancerTlsCertificateStatus 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.
///
/// An array of strings that specify the alternate domains (e.g., example2.com
)
/// and subdomains (e.g., blog.example.com
) for the certificate.
///
///
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 SupportCode.
///
/// The support code. Include this code in your email to support when you have questions
/// about your Lightsail load balancer or SSL/TLS certificate. This code enables our support
/// team to look up your Lightsail information more easily.
///
///
public string SupportCode
{
get { return this._supportCode; }
set { this._supportCode = value; }
}
// Check to see if SupportCode property is set
internal bool IsSetSupportCode()
{
return this._supportCode != null;
}
///
/// Gets and sets the property Tags.
///
/// The tag keys and optional values for the resource. For more information about tags
/// in Lightsail, see the Amazon
/// Lightsail Developer Guide.
///
///
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;
}
}
}