/* * Copyright 2018-2023 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. */ package com.amazonaws.services.certificatemanager.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class RequestCertificateRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* 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. *

*/ private String domainName; /** *

* 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. *

*/ private String validationMethod; /** *

* 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: *

* */ private java.util.List subjectAlternativeNames; /** *

* 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. *

*/ private String idempotencyToken; /** *

* The domain name that you want ACM to use to send you emails so that you can validate domain ownership. *

*/ private java.util.List domainValidationOptions; /** *

* 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. *

*/ private CertificateOptions options; /** *

* 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 *

*/ private String certificateAuthorityArn; /** *

* One or more resource tags to associate with the certificate. *

*/ private java.util.List tags; /** *

* 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 *

*/ private String keyAlgorithm; /** *

* 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. *

* * @param 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. */ public void setDomainName(String domainName) { this.domainName = 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. *

* * @return 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. */ public String getDomainName() { return this.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. *

* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public RequestCertificateRequest withDomainName(String domainName) { setDomainName(domainName); return this; } /** *

* 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. *

* * @param 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. * @see ValidationMethod */ public void setValidationMethod(String validationMethod) { this.validationMethod = 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. *

* * @return 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. * @see ValidationMethod */ public String getValidationMethod() { return this.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. *

* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see ValidationMethod */ public RequestCertificateRequest withValidationMethod(String validationMethod) { setValidationMethod(validationMethod); return this; } /** *

* 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. *

* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see ValidationMethod */ public RequestCertificateRequest withValidationMethod(ValidationMethod validationMethod) { this.validationMethod = validationMethod.toString(); return this; } /** *

* 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. *

    *
  • *
* * @return 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. *

    *
  • */ public java.util.List getSubjectAlternativeNames() { return 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. *

      *
    • *
    * * @param 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. *

      *
    • */ public void setSubjectAlternativeNames(java.util.Collection subjectAlternativeNames) { if (subjectAlternativeNames == null) { this.subjectAlternativeNames = null; return; } this.subjectAlternativeNames = new java.util.ArrayList(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. *

        *
      • *
      *

      * NOTE: This method appends the values to the existing list (if any). Use * {@link #setSubjectAlternativeNames(java.util.Collection)} or * {@link #withSubjectAlternativeNames(java.util.Collection)} if you want to override the existing values. *

      * * @param 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. *

        *
      • * @return Returns a reference to this object so that method calls can be chained together. */ public RequestCertificateRequest withSubjectAlternativeNames(String... subjectAlternativeNames) { if (this.subjectAlternativeNames == null) { setSubjectAlternativeNames(new java.util.ArrayList(subjectAlternativeNames.length)); } for (String ele : subjectAlternativeNames) { this.subjectAlternativeNames.add(ele); } return this; } /** *

        * 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. *

          *
        • *
        * * @param 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. *

          *
        • * @return Returns a reference to this object so that method calls can be chained together. */ public RequestCertificateRequest withSubjectAlternativeNames(java.util.Collection subjectAlternativeNames) { setSubjectAlternativeNames(subjectAlternativeNames); return this; } /** *

          * 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. *

          * * @param 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. */ public void setIdempotencyToken(String idempotencyToken) { this.idempotencyToken = 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. *

          * * @return 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. */ public String getIdempotencyToken() { return this.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. *

          * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public RequestCertificateRequest withIdempotencyToken(String idempotencyToken) { setIdempotencyToken(idempotencyToken); return this; } /** *

          * The domain name that you want ACM to use to send you emails so that you can validate domain ownership. *

          * * @return The domain name that you want ACM to use to send you emails so that you can validate domain ownership. */ public java.util.List getDomainValidationOptions() { return domainValidationOptions; } /** *

          * The domain name that you want ACM to use to send you emails so that you can validate domain ownership. *

          * * @param domainValidationOptions * The domain name that you want ACM to use to send you emails so that you can validate domain ownership. */ public void setDomainValidationOptions(java.util.Collection domainValidationOptions) { if (domainValidationOptions == null) { this.domainValidationOptions = null; return; } this.domainValidationOptions = new java.util.ArrayList(domainValidationOptions); } /** *

          * The domain name that you want ACM to use to send you emails so that you can validate domain ownership. *

          *

          * NOTE: This method appends the values to the existing list (if any). Use * {@link #setDomainValidationOptions(java.util.Collection)} or * {@link #withDomainValidationOptions(java.util.Collection)} if you want to override the existing values. *

          * * @param domainValidationOptions * The domain name that you want ACM to use to send you emails so that you can validate domain ownership. * @return Returns a reference to this object so that method calls can be chained together. */ public RequestCertificateRequest withDomainValidationOptions(DomainValidationOption... domainValidationOptions) { if (this.domainValidationOptions == null) { setDomainValidationOptions(new java.util.ArrayList(domainValidationOptions.length)); } for (DomainValidationOption ele : domainValidationOptions) { this.domainValidationOptions.add(ele); } return this; } /** *

          * The domain name that you want ACM to use to send you emails so that you can validate domain ownership. *

          * * @param domainValidationOptions * The domain name that you want ACM to use to send you emails so that you can validate domain ownership. * @return Returns a reference to this object so that method calls can be chained together. */ public RequestCertificateRequest withDomainValidationOptions(java.util.Collection domainValidationOptions) { setDomainValidationOptions(domainValidationOptions); return this; } /** *

          * 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. *

          * * @param 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 void setOptions(CertificateOptions options) { this.options = 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. *

          * * @return 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 getOptions() { return this.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. *

          * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public RequestCertificateRequest withOptions(CertificateOptions options) { setOptions(options); return this; } /** *

          * 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 *

          * * @param 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 */ public void setCertificateAuthorityArn(String certificateAuthorityArn) { this.certificateAuthorityArn = 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 *

          * * @return 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 */ public String getCertificateAuthorityArn() { return this.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 *

          * * @param 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 * @return Returns a reference to this object so that method calls can be chained together. */ public RequestCertificateRequest withCertificateAuthorityArn(String certificateAuthorityArn) { setCertificateAuthorityArn(certificateAuthorityArn); return this; } /** *

          * One or more resource tags to associate with the certificate. *

          * * @return One or more resource tags to associate with the certificate. */ public java.util.List getTags() { return tags; } /** *

          * One or more resource tags to associate with the certificate. *

          * * @param tags * One or more resource tags to associate with the certificate. */ public void setTags(java.util.Collection tags) { if (tags == null) { this.tags = null; return; } this.tags = new java.util.ArrayList(tags); } /** *

          * One or more resource tags to associate with the certificate. *

          *

          * NOTE: This method appends the values to the existing list (if any). Use * {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the * existing values. *

          * * @param tags * One or more resource tags to associate with the certificate. * @return Returns a reference to this object so that method calls can be chained together. */ public RequestCertificateRequest withTags(Tag... tags) { if (this.tags == null) { setTags(new java.util.ArrayList(tags.length)); } for (Tag ele : tags) { this.tags.add(ele); } return this; } /** *

          * One or more resource tags to associate with the certificate. *

          * * @param tags * One or more resource tags to associate with the certificate. * @return Returns a reference to this object so that method calls can be chained together. */ public RequestCertificateRequest withTags(java.util.Collection tags) { setTags(tags); return this; } /** *

          * 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 *

          * * @param 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 * @see KeyAlgorithm */ public void setKeyAlgorithm(String keyAlgorithm) { this.keyAlgorithm = 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 *

          * * @return 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 * @see KeyAlgorithm */ public String getKeyAlgorithm() { return this.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 *

          * * @param 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 * @return Returns a reference to this object so that method calls can be chained together. * @see KeyAlgorithm */ public RequestCertificateRequest withKeyAlgorithm(String keyAlgorithm) { setKeyAlgorithm(keyAlgorithm); return this; } /** *

          * 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 *

          * * @param 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 * @return Returns a reference to this object so that method calls can be chained together. * @see KeyAlgorithm */ public RequestCertificateRequest withKeyAlgorithm(KeyAlgorithm keyAlgorithm) { this.keyAlgorithm = keyAlgorithm.toString(); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getDomainName() != null) sb.append("DomainName: ").append(getDomainName()).append(","); if (getValidationMethod() != null) sb.append("ValidationMethod: ").append(getValidationMethod()).append(","); if (getSubjectAlternativeNames() != null) sb.append("SubjectAlternativeNames: ").append(getSubjectAlternativeNames()).append(","); if (getIdempotencyToken() != null) sb.append("IdempotencyToken: ").append(getIdempotencyToken()).append(","); if (getDomainValidationOptions() != null) sb.append("DomainValidationOptions: ").append(getDomainValidationOptions()).append(","); if (getOptions() != null) sb.append("Options: ").append(getOptions()).append(","); if (getCertificateAuthorityArn() != null) sb.append("CertificateAuthorityArn: ").append(getCertificateAuthorityArn()).append(","); if (getTags() != null) sb.append("Tags: ").append(getTags()).append(","); if (getKeyAlgorithm() != null) sb.append("KeyAlgorithm: ").append(getKeyAlgorithm()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof RequestCertificateRequest == false) return false; RequestCertificateRequest other = (RequestCertificateRequest) obj; if (other.getDomainName() == null ^ this.getDomainName() == null) return false; if (other.getDomainName() != null && other.getDomainName().equals(this.getDomainName()) == false) return false; if (other.getValidationMethod() == null ^ this.getValidationMethod() == null) return false; if (other.getValidationMethod() != null && other.getValidationMethod().equals(this.getValidationMethod()) == false) return false; if (other.getSubjectAlternativeNames() == null ^ this.getSubjectAlternativeNames() == null) return false; if (other.getSubjectAlternativeNames() != null && other.getSubjectAlternativeNames().equals(this.getSubjectAlternativeNames()) == false) return false; if (other.getIdempotencyToken() == null ^ this.getIdempotencyToken() == null) return false; if (other.getIdempotencyToken() != null && other.getIdempotencyToken().equals(this.getIdempotencyToken()) == false) return false; if (other.getDomainValidationOptions() == null ^ this.getDomainValidationOptions() == null) return false; if (other.getDomainValidationOptions() != null && other.getDomainValidationOptions().equals(this.getDomainValidationOptions()) == false) return false; if (other.getOptions() == null ^ this.getOptions() == null) return false; if (other.getOptions() != null && other.getOptions().equals(this.getOptions()) == false) return false; if (other.getCertificateAuthorityArn() == null ^ this.getCertificateAuthorityArn() == null) return false; if (other.getCertificateAuthorityArn() != null && other.getCertificateAuthorityArn().equals(this.getCertificateAuthorityArn()) == false) return false; if (other.getTags() == null ^ this.getTags() == null) return false; if (other.getTags() != null && other.getTags().equals(this.getTags()) == false) return false; if (other.getKeyAlgorithm() == null ^ this.getKeyAlgorithm() == null) return false; if (other.getKeyAlgorithm() != null && other.getKeyAlgorithm().equals(this.getKeyAlgorithm()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getDomainName() == null) ? 0 : getDomainName().hashCode()); hashCode = prime * hashCode + ((getValidationMethod() == null) ? 0 : getValidationMethod().hashCode()); hashCode = prime * hashCode + ((getSubjectAlternativeNames() == null) ? 0 : getSubjectAlternativeNames().hashCode()); hashCode = prime * hashCode + ((getIdempotencyToken() == null) ? 0 : getIdempotencyToken().hashCode()); hashCode = prime * hashCode + ((getDomainValidationOptions() == null) ? 0 : getDomainValidationOptions().hashCode()); hashCode = prime * hashCode + ((getOptions() == null) ? 0 : getOptions().hashCode()); hashCode = prime * hashCode + ((getCertificateAuthorityArn() == null) ? 0 : getCertificateAuthorityArn().hashCode()); hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode()); hashCode = prime * hashCode + ((getKeyAlgorithm() == null) ? 0 : getKeyAlgorithm().hashCode()); return hashCode; } @Override public RequestCertificateRequest clone() { return (RequestCertificateRequest) super.clone(); } }