class Aws::ACMPCA::Types::IssueCertificateRequest

@note When making an API call, you may pass IssueCertificateRequest

data as a hash:

    {
      api_passthrough: {
        extensions: {
          certificate_policies: [
            {
              cert_policy_id: "CustomObjectIdentifier", # required
              policy_qualifiers: [
                {
                  policy_qualifier_id: "CPS", # required, accepts CPS
                  qualifier: { # required
                    cps_uri: "String256", # required
                  },
                },
              ],
            },
          ],
          extended_key_usage: [
            {
              extended_key_usage_type: "SERVER_AUTH", # accepts SERVER_AUTH, CLIENT_AUTH, CODE_SIGNING, EMAIL_PROTECTION, TIME_STAMPING, OCSP_SIGNING, SMART_CARD_LOGIN, DOCUMENT_SIGNING, CERTIFICATE_TRANSPARENCY
              extended_key_usage_object_identifier: "CustomObjectIdentifier",
            },
          ],
          key_usage: {
            digital_signature: false,
            non_repudiation: false,
            key_encipherment: false,
            data_encipherment: false,
            key_agreement: false,
            key_cert_sign: false,
            crl_sign: false,
            encipher_only: false,
            decipher_only: false,
          },
          subject_alternative_names: [
            {
              other_name: {
                type_id: "CustomObjectIdentifier", # required
                value: "String256", # required
              },
              rfc_822_name: "String256",
              dns_name: "String253",
              directory_name: {
                country: "CountryCodeString",
                organization: "String64",
                organizational_unit: "String64",
                distinguished_name_qualifier: "ASN1PrintableString64",
                state: "String128",
                common_name: "String64",
                serial_number: "ASN1PrintableString64",
                locality: "String128",
                title: "String64",
                surname: "String40",
                given_name: "String16",
                initials: "String5",
                pseudonym: "String128",
                generation_qualifier: "String3",
              },
              edi_party_name: {
                party_name: "String256", # required
                name_assigner: "String256",
              },
              uniform_resource_identifier: "String253",
              ip_address: "String39",
              registered_id: "CustomObjectIdentifier",
            },
          ],
        },
        subject: {
          country: "CountryCodeString",
          organization: "String64",
          organizational_unit: "String64",
          distinguished_name_qualifier: "ASN1PrintableString64",
          state: "String128",
          common_name: "String64",
          serial_number: "ASN1PrintableString64",
          locality: "String128",
          title: "String64",
          surname: "String40",
          given_name: "String16",
          initials: "String5",
          pseudonym: "String128",
          generation_qualifier: "String3",
        },
      },
      certificate_authority_arn: "Arn", # required
      csr: "data", # required
      signing_algorithm: "SHA256WITHECDSA", # required, accepts SHA256WITHECDSA, SHA384WITHECDSA, SHA512WITHECDSA, SHA256WITHRSA, SHA384WITHRSA, SHA512WITHRSA
      template_arn: "Arn",
      validity: { # required
        value: 1, # required
        type: "END_DATE", # required, accepts END_DATE, ABSOLUTE, DAYS, MONTHS, YEARS
      },
      validity_not_before: {
        value: 1, # required
        type: "END_DATE", # required, accepts END_DATE, ABSOLUTE, DAYS, MONTHS, YEARS
      },
      idempotency_token: "IdempotencyToken",
    }

@!attribute [rw] api_passthrough

Specifies X.509 certificate information to be included in the issued
certificate. An `APIPassthrough` or `APICSRPassthrough` template
variant must be selected, or else this parameter is ignored. For
more information about using these templates, see [Understanding
Certificate Templates][1].

If conflicting or duplicate certificate information is supplied
during certificate issuance, ACM Private CA applies [order of
operation rules][2] to determine what information is used.

[1]: https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html
[2]: https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html#template-order-of-operations
@return [Types::ApiPassthrough]

@!attribute [rw] certificate_authority_arn

The Amazon Resource Name (ARN) that was returned when you called
[CreateCertificateAuthority][1]. This must be of the form:

`arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
`

[1]: https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html
@return [String]

@!attribute [rw] csr

The certificate signing request (CSR) for the certificate you want
to issue. As an example, you can use the following OpenSSL command
to create the CSR and a 2048 bit RSA private key.

`openssl req -new -newkey rsa:2048 -days 365 -keyout
private/test_cert_priv_key.pem -out csr/test_cert_.csr`

If you have a configuration file, you can then use the following
OpenSSL command. The `usr_cert` block in the configuration file
contains your X509 version 3 extensions.

`openssl req -new -config openssl_rsa.cnf -extensions usr_cert
-newkey rsa:2048 -days -365 -keyout private/test_cert_priv_key.pem
-out csr/test_cert_.csr`

Note: A CSR must provide either a *subject name* or a *subject
alternative name* or the request will be rejected.
@return [String]

@!attribute [rw] signing_algorithm

The name of the algorithm that will be used to sign the certificate
to be issued.

This parameter should not be confused with the `SigningAlgorithm`
parameter used to sign a CSR in the `CreateCertificateAuthority`
action.
@return [String]

@!attribute [rw] template_arn

Specifies a custom configuration template to use when issuing a
certificate. If this parameter is not provided, ACM Private CA
defaults to the `EndEntityCertificate/V1` template. For CA
certificates, you should choose the shortest path length that meets
your needs. The path length is indicated by the PathLen*N* portion
of the ARN, where *N* is the [CA depth][1].

Note: The CA depth configured on a subordinate CA certificate must
not exceed the limit set by its parents in the CA hierarchy.

For a list of `TemplateArn` values supported by ACM Private CA, see
[Understanding Certificate Templates][2].

[1]: https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaTerms.html#terms-cadepth
[2]: https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html
@return [String]

@!attribute [rw] validity

Information describing the end of the validity period of the
certificate. This parameter sets the “Not After” date for the
certificate.

Certificate validity is the period of time during which a
certificate is valid. Validity can be expressed as an explicit date
and time when the certificate expires, or as a span of time after
issuance, stated in days, months, or years. For more information,
see [Validity][1] in RFC 5280.

This value is unaffected when `ValidityNotBefore` is also specified.
For example, if `Validity` is set to 20 days in the future, the
certificate will expire 20 days from issuance time regardless of the
`ValidityNotBefore` value.

The end of the validity period configured on a certificate must not
exceed the limit set on its parents in the CA hierarchy.

[1]: https://tools.ietf.org/html/rfc5280#section-4.1.2.5
@return [Types::Validity]

@!attribute [rw] validity_not_before

Information describing the start of the validity period of the
certificate. This parameter sets the “Not Before" date for the
certificate.

By default, when issuing a certificate, ACM Private CA sets the
"Not Before" date to the issuance time minus 60 minutes. This
compensates for clock inconsistencies across computer systems. The
`ValidityNotBefore` parameter can be used to customize the “Not
Before” value.

Unlike the `Validity` parameter, the `ValidityNotBefore` parameter
is optional.

The `ValidityNotBefore` value is expressed as an explicit date and
time, using the `Validity` type value `ABSOLUTE`. For more
information, see [Validity][1] in this API reference and
[Validity][2] in RFC 5280.

[1]: https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_Validity.html
[2]: https://tools.ietf.org/html/rfc5280#section-4.1.2.5
@return [Types::Validity]

@!attribute [rw] idempotency_token

Alphanumeric string that can be used to distinguish between calls to
the **IssueCertificate** action. Idempotency tokens for
**IssueCertificate** time out after one minute. Therefore, if you
call **IssueCertificate** multiple times with the same idempotency
token within one minute, ACM Private CA recognizes that you are
requesting only one certificate and will issue only one. If you
change the idempotency token for each call, PCA recognizes that you
are requesting multiple certificates.
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/IssueCertificateRequest AWS API Documentation

Constants

SENSITIVE