Class Certificate


  • public class Certificate
    extends com.pulumi.resources.CustomResource
    The ACM certificate resource allows requesting and management of certificates from the Amazon Certificate Manager. ACM certificates can be created in three ways: Amazon-issued, where AWS provides the certificate authority and automatically manages renewal; imported certificates, issued by another certificate authority; and private certificates, issued using an ACM Private Certificate Authority. For Amazon-issued certificates, this resource deals with requesting certificates and managing their attributes and life-cycle. It does not wait for a certificate to be issued — use `aws.acm.CertificateValidation` for that. Most commonly used together with `aws.route53.Record` and `aws.acm.CertificateValidation` to request a DNS validated certificate, deploy the required validation records, and wait for validation to complete. It's recommended to specify `createBeforeDestroy = true` in a lifecycle block to replace a certificate which is currently in use (e.g., by `aws.lb.Listener`). Imported certificates can be used to make certificates created with an external certificate authority available for AWS services. As they are not managed by AWS, imported certificates are not eligible for automatic renewal. New certificate materials can be supplied to an existing imported certificate to update it in place. Private certificates are issued by an ACM Private Certificate Authority, which can be created using `aws.acmpca.CertificateAuthority`. Private certificates created using this resource are eligible for managed renewal if they have been exported or associated with another AWS service. See [managed renewal documentation](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html) for more information. By default, a certificate is valid for 395 days and the managed renewal process will start 60 days before expiration. To renew the certificate earlier than 60 days before expiration, configure `earlyRenewalDuration`. ## Example Usage ### Custom Domain Validation Options
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.acm.Certificate;
     import com.pulumi.aws.acm.CertificateArgs;
     import com.pulumi.aws.acm.inputs.CertificateValidationOptionArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var cert = new Certificate("cert", CertificateArgs.builder()
                 .validationOptions(CertificateValidationOptionArgs.builder()
                     .domainName("testing.example.com")
                     .validationDomain("example.com")
                     .build())
                 .domainName("testing.example.com")
                 .validationMethod("EMAIL")
                 .build());
     
         }
     }
     
     
    ### Existing Certificate Body Import
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.tls.PrivateKey;
     import com.pulumi.tls.PrivateKeyArgs;
     import com.pulumi.tls.SelfSignedCert;
     import com.pulumi.tls.SelfSignedCertArgs;
     import com.pulumi.aws.acm.Certificate;
     import com.pulumi.aws.acm.CertificateArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new PrivateKey("example", PrivateKeyArgs.builder()
                 .algorithm("RSA")
                 .build());
     
             var exampleSelfSignedCert = new SelfSignedCert("exampleSelfSignedCert", SelfSignedCertArgs.builder()
                 .subject(com.pulumi.tls.inputs.SelfSignedCertSubjectArgs.builder()
                     .commonName("example.com")
                     .organization("ACME Examples, Inc")
                     .build())
                 .keyAlgorithm("RSA")
                 .privateKeyPem(example.privateKeyPem())
                 .validityPeriodHours(12)
                 .allowedUses(            
                     "key_encipherment",
                     "digital_signature",
                     "server_auth")
                 .build());
     
             var cert = new Certificate("cert", CertificateArgs.builder()
                 .privateKey(example.privateKeyPem())
                 .certificateBody(exampleSelfSignedCert.certPem())
                 .build());
     
         }
     }
     
     
    ### Existing Certificate Body Import With Write-Only Private Key
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.tls.PrivateKey;
     import com.pulumi.tls.PrivateKeyArgs;
     import com.pulumi.tls.SelfSignedCert;
     import com.pulumi.tls.SelfSignedCertArgs;
     import com.pulumi.aws.acm.Certificate;
     import com.pulumi.aws.acm.CertificateArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new PrivateKey("example", PrivateKeyArgs.builder()
                 .algorithm("RSA")
                 .build());
     
             var exampleSelfSignedCert = new SelfSignedCert("exampleSelfSignedCert", SelfSignedCertArgs.builder()
                 .subject(com.pulumi.tls.inputs.SelfSignedCertSubjectArgs.builder()
                     .commonName("example.com")
                     .organization("ACME Examples, Inc")
                     .build())
                 .keyAlgorithm("RSA")
                 .privateKeyPem(example.privateKeyPem())
                 .validityPeriodHours(12)
                 .allowedUses(            
                     "key_encipherment",
                     "digital_signature",
                     "server_auth")
                 .build());
     
             var cert = new Certificate("cert", CertificateArgs.builder()
                 .privateKeyWo(example.privateKeyPem())
                 .privateKeyWoVersion(1)
                 .certificateBody(exampleSelfSignedCert.certPem())
                 .build());
     
         }
     }
     
     
    ### Referencing domainValidationOptions With forEach Based Resources See the `aws.acm.CertificateValidation` resource for a full example of performing DNS validation. ## Import ### Identity Schema #### Required - `arn` (String) ARN of the certificate. Using `pulumi import`, import certificates using their ARN. For example: ```sh $ pulumi import aws:acm/certificate:Certificate example arn:aws:acm:eu-central-1:123456789012:certificate/7e7a28d2-163f-4b8f-b9cd-822f96c08d6a ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.pulumi.core.Output<java.lang.String> arn()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> certificateAuthorityArn()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> certificateBody()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> certificateChain()  
      com.pulumi.core.Output<java.lang.String> domainName()  
      com.pulumi.core.Output<java.util.List<CertificateDomainValidationOption>> domainValidationOptions()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> earlyRenewalDuration()  
      static Certificate get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, CertificateState state, com.pulumi.resources.CustomResourceOptions options)
      Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
      com.pulumi.core.Output<java.lang.String> keyAlgorithm()  
      com.pulumi.core.Output<java.lang.String> notAfter()  
      com.pulumi.core.Output<java.lang.String> notBefore()  
      com.pulumi.core.Output<CertificateOptions> options()  
      com.pulumi.core.Output<java.lang.Boolean> pendingRenewal()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> privateKey()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> privateKeyWo()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> privateKeyWoVersion()  
      com.pulumi.core.Output<java.lang.String> region()  
      com.pulumi.core.Output<java.lang.String> renewalEligibility()  
      com.pulumi.core.Output<java.util.List<CertificateRenewalSummary>> renewalSummaries()  
      com.pulumi.core.Output<java.lang.String> status()  
      com.pulumi.core.Output<java.util.List<java.lang.String>> subjectAlternativeNames()  
      com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()  
      com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()  
      com.pulumi.core.Output<java.lang.String> type()  
      com.pulumi.core.Output<java.util.List<java.lang.String>> validationEmails()  
      com.pulumi.core.Output<java.lang.String> validationMethod()  
      com.pulumi.core.Output<java.util.Optional<java.util.List<CertificateValidationOption>>> validationOptions()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Certificate

        public Certificate​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • Certificate

        public Certificate​(java.lang.String name,
                           @Nullable
                           CertificateArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • Certificate

        public Certificate​(java.lang.String name,
                           @Nullable
                           CertificateArgs args,
                           @Nullable
                           com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        ARN of the certificate
      • certificateAuthorityArn

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> certificateAuthorityArn()
      • certificateBody

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> certificateBody()
      • certificateChain

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> certificateChain()
      • domainName

        public com.pulumi.core.Output<java.lang.String> domainName()
        Returns:
        Domain to be validated
      • domainValidationOptions

        public com.pulumi.core.Output<java.util.List<CertificateDomainValidationOption>> domainValidationOptions()
        Returns:
        Set of domain validation objects which can be used to complete certificate validation. Can have more than one element, e.g., if SANs are defined. Only set if `DNS`-validation was used.
      • earlyRenewalDuration

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> earlyRenewalDuration()
      • keyAlgorithm

        public com.pulumi.core.Output<java.lang.String> keyAlgorithm()
      • notAfter

        public com.pulumi.core.Output<java.lang.String> notAfter()
        Returns:
        Expiration date and time of the certificate.
      • notBefore

        public com.pulumi.core.Output<java.lang.String> notBefore()
        Returns:
        Start of the validity period of the certificate.
      • pendingRenewal

        public com.pulumi.core.Output<java.lang.Boolean> pendingRenewal()
        Returns:
        `true` if a Private certificate eligible for managed renewal is within the `earlyRenewalDuration` period.
      • privateKey

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> privateKey()
      • privateKeyWo

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> privateKeyWo()
        Returns:
        **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
      • privateKeyWoVersion

        public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> privateKeyWoVersion()
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. * Creating an Amazon issued certificate
      • renewalEligibility

        public com.pulumi.core.Output<java.lang.String> renewalEligibility()
        Returns:
        Whether the certificate is eligible for managed renewal.
      • renewalSummaries

        public com.pulumi.core.Output<java.util.List<CertificateRenewalSummary>> renewalSummaries()
        Returns:
        Contains information about the status of ACM's [managed renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) for the certificate.
      • status

        public com.pulumi.core.Output<java.lang.String> status()
        Returns:
        Status of the certificate.
      • subjectAlternativeNames

        public com.pulumi.core.Output<java.util.List<java.lang.String>> subjectAlternativeNames()
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
        Returns:
        Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
      • type

        public com.pulumi.core.Output<java.lang.String> type()
        Returns:
        Source of the certificate.
      • validationEmails

        public com.pulumi.core.Output<java.util.List<java.lang.String>> validationEmails()
        Returns:
        List of addresses that received a validation email. Only set if `EMAIL` validation was used.
      • validationMethod

        public com.pulumi.core.Output<java.lang.String> validationMethod()
      • validationOptions

        public com.pulumi.core.Output<java.util.Optional<java.util.List<CertificateValidationOption>>> validationOptions()
      • get

        public static Certificate get​(java.lang.String name,
                                      com.pulumi.core.Output<java.lang.String> id,
                                      @Nullable
                                      CertificateState state,
                                      @Nullable
                                      com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.