/* * 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 { /// /// Container for the parameters to the RequestCertificate operation. /// Requests an ACM certificate for use with other Amazon Web Services services. To request /// an ACM certificate, you must specify a fully qualified domain name (FQDN) in the DomainName /// parameter. You can also specify additional FQDNs in the SubjectAlternativeNames /// parameter. /// /// /// /// If you are requesting a private certificate, domain validation is not required. If /// you are requesting a public certificate, each domain name that you specify must be /// validated to verify that you own or control the domain. You can use DNS /// validation or email /// validation. We recommend that you use DNS validation. ACM issues public certificates /// after receiving approval from the domain owner. /// /// /// /// ACM behavior differs from the RFC /// 6125 specification of the certificate validation process. ACM first checks for /// a Subject Alternative Name, and, if it finds one, ignores the common name (CN). /// /// /// /// After successful completion of the RequestCertificate action, there is /// a delay of several seconds before you can retrieve information about the new certificate. /// /// public partial class RequestCertificateRequest : AmazonCertificateManagerRequest { private string _certificateAuthorityArn; private string _domainName; private List _domainValidationOptions = new List(); private string _idempotencyToken; private KeyAlgorithm _keyAlgorithm; private CertificateOptions _options; private List _subjectAlternativeNames = new List(); private List _tags = new List(); private ValidationMethod _validationMethod; /// /// Gets and sets the property CertificateAuthorityArn. /// /// The Amazon Resource Name (ARN) of the private certificate authority (CA) that will /// be used to issue the certificate. If you do not provide an ARN and you are trying /// to request a private certificate, ACM will attempt to issue a public certificate. /// For more information about private CAs, see the Amazon /// Web Services Private Certificate Authority user guide. The ARN must have the following /// form: /// /// /// /// 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 DomainName. /// /// Fully qualified domain name (FQDN), such as www.example.com, that you want to secure /// with an ACM certificate. Use an asterisk (*) to create a wildcard certificate that /// protects several sites in the same domain. For example, *.example.com protects www.example.com, /// site.example.com, and images.example.com. /// /// /// /// In compliance with RFC 5280, /// the length of the domain name (technically, the Common Name) that you provide cannot /// exceed 64 octets (characters), including periods. To add a longer domain name, specify /// it in the Subject Alternative Name field, which supports names up to 253 octets in /// length. /// /// [AWSProperty(Required=true, 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. /// /// The domain name that you want ACM to use to send you emails so that you can validate /// domain ownership. /// /// [AWSProperty(Min=1, Max=100)] 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 IdempotencyToken. /// /// Customer chosen string that can be used to distinguish between calls to RequestCertificate. /// Idempotency tokens time out after one hour. Therefore, if you call RequestCertificate /// multiple times with the same idempotency token within one hour, ACM recognizes that /// you are requesting only one certificate and will issue only one. If you change the /// idempotency token for each call, ACM recognizes that you are requesting multiple certificates. /// /// [AWSProperty(Min=1, Max=32)] 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 KeyAlgorithm. /// /// Specifies the algorithm of the public and private key pair that your certificate uses /// to encrypt data. RSA is the default key algorithm for ACM certificates. Elliptic Curve /// Digital Signature Algorithm (ECDSA) keys are smaller, offering security comparable /// to RSA keys but with greater computing efficiency. However, ECDSA is not supported /// by all network clients. Some AWS services may require RSA keys, or only support ECDSA /// keys of a particular size, while others allow the use of either RSA and ECDSA keys /// to ensure that compatibility is not broken. Check the requirements for the AWS service /// where you plan to deploy your certificate. /// /// /// /// Default: RSA_2048 /// /// 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 Options. /// /// Currently, you can use this parameter to specify whether to add the certificate to /// a certificate transparency log. Certificate transparency makes it possible to detect /// SSL/TLS certificates that have been mistakenly or maliciously issued. Certificates /// that have not been logged typically produce an error message in a browser. For more /// information, see Opting /// Out of Certificate Transparency Logging. /// /// 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 SubjectAlternativeNames. /// /// Additional FQDNs to be included in the Subject Alternative Name extension of the ACM /// certificate. For example, add the name www.example.net to a certificate for which /// the DomainName field is www.example.com if users can reach your site /// by using either name. The maximum number of domain names that you can add to an ACM /// certificate is 100. However, the initial quota is 10 domain names. If you need more /// than 10 names, you must request a quota increase. For more information, see Quotas. /// /// /// /// The maximum length of a SAN DNS name is 253 octets. The name is made up of multiple /// labels separated by periods. No label can be longer than 63 octets. Consider the following /// examples: /// ///
  • /// /// (63 octets).(63 octets).(63 octets).(61 octets) is legal because the /// total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63 octets. /// ///
  • /// /// (64 octets).(63 octets).(63 octets).(61 octets) is not legal because /// the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first label exceeds /// 63 octets. /// ///
  • /// /// (63 octets).(63 octets).(63 octets).(62 octets) is not legal because /// the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets. /// ///
///
[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 Tags. /// /// One or more resource tags to associate with the certificate. /// /// [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 ValidationMethod. /// /// The method you want to use if you are requesting a public certificate to validate /// that you own or control domain. You can validate /// with DNS or validate /// with email. We recommend that you use DNS validation. /// /// public ValidationMethod ValidationMethod { get { return this._validationMethod; } set { this._validationMethod = value; } } // Check to see if ValidationMethod property is set internal bool IsSetValidationMethod() { return this._validationMethod != null; } } }