github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/acm/certificate.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package acm 5 6 import ( 7 "context" 8 "reflect" 9 10 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 11 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 12 ) 13 14 // The ACM certificate resource allows requesting and management of certificates 15 // from the Amazon Certificate Manager. 16 // 17 // ACM certificates can be created in three ways: 18 // Amazon-issued, where AWS provides the certificate authority and automatically manages renewal; 19 // imported certificates, issued by another certificate authority; 20 // and private certificates, issued using an ACM Private Certificate Authority. 21 // 22 // ## Amazon-Issued Certificates 23 // 24 // For Amazon-issued certificates, this resource deals with requesting certificates and managing their attributes and life-cycle. 25 // This resource does not deal with validation of a certificate but can provide inputs 26 // for other resources implementing the validation. 27 // It does not wait for a certificate to be issued. 28 // Use a `acm.CertificateValidation` resource for this. 29 // 30 // Most commonly, this resource is used together with `route53.Record` and 31 // `acm.CertificateValidation` to request a DNS validated certificate, 32 // deploy the required validation records and wait for validation to complete. 33 // 34 // Domain validation through email is also supported but should be avoided as it requires a manual step outside of this provider. 35 // 36 // ## Certificates Imported from Other Certificate Authority 37 // 38 // Imported certificates can be used to make certificates created with an external certificate authority available for AWS services. 39 // 40 // As they are not managed by AWS, imported certificates are not eligible for automatic renewal. 41 // New certificate materials can be supplied to an existing imported certificate to update it in place. 42 // 43 // ## Private Certificates 44 // 45 // Private certificates are issued by an ACM Private Cerificate Authority, which can be created using the resource type `acmpca.CertificateAuthority`. 46 // 47 // Private certificates created using this resource are eligible for managed renewal if they have been exported or associated with another AWS service. 48 // See [managed renewal documentation](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html) for more information. 49 // By default, a certificate is valid for 395 days and the managed renewal process will start 60 days before expiration. 50 // To renew the certificate earlier than 60 days before expiration, configure `earlyRenewalDuration`. 51 // 52 // ## Example Usage 53 // 54 // ### Custom Domain Validation Options 55 // 56 // <!--Start PulumiCodeChooser --> 57 // ```go 58 // package main 59 // 60 // import ( 61 // 62 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/acm" 63 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 64 // 65 // ) 66 // 67 // func main() { 68 // pulumi.Run(func(ctx *pulumi.Context) error { 69 // _, err := acm.NewCertificate(ctx, "cert", &acm.CertificateArgs{ 70 // DomainName: pulumi.String("testing.example.com"), 71 // ValidationMethod: pulumi.String("EMAIL"), 72 // ValidationOptions: acm.CertificateValidationOptionArray{ 73 // &acm.CertificateValidationOptionArgs{ 74 // DomainName: pulumi.String("testing.example.com"), 75 // ValidationDomain: pulumi.String("example.com"), 76 // }, 77 // }, 78 // }) 79 // if err != nil { 80 // return err 81 // } 82 // return nil 83 // }) 84 // } 85 // 86 // ``` 87 // <!--End PulumiCodeChooser --> 88 // 89 // ### Existing Certificate Body Import 90 // 91 // <!--Start PulumiCodeChooser --> 92 // ```go 93 // package main 94 // 95 // import ( 96 // 97 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/acm" 98 // "github.com/pulumi/pulumi-tls/sdk/v4/go/tls" 99 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 100 // 101 // ) 102 // 103 // func main() { 104 // pulumi.Run(func(ctx *pulumi.Context) error { 105 // example, err := tls.NewPrivateKey(ctx, "example", &tls.PrivateKeyArgs{ 106 // Algorithm: pulumi.String("RSA"), 107 // }) 108 // if err != nil { 109 // return err 110 // } 111 // exampleSelfSignedCert, err := tls.NewSelfSignedCert(ctx, "example", &tls.SelfSignedCertArgs{ 112 // KeyAlgorithm: pulumi.String("RSA"), 113 // PrivateKeyPem: example.PrivateKeyPem, 114 // Subject: &tls.SelfSignedCertSubjectArgs{ 115 // CommonName: pulumi.String("example.com"), 116 // Organization: pulumi.String("ACME Examples, Inc"), 117 // }, 118 // ValidityPeriodHours: pulumi.Int(12), 119 // AllowedUses: pulumi.StringArray{ 120 // pulumi.String("key_encipherment"), 121 // pulumi.String("digital_signature"), 122 // pulumi.String("server_auth"), 123 // }, 124 // }) 125 // if err != nil { 126 // return err 127 // } 128 // _, err = acm.NewCertificate(ctx, "cert", &acm.CertificateArgs{ 129 // PrivateKey: example.PrivateKeyPem, 130 // CertificateBody: exampleSelfSignedCert.CertPem, 131 // }) 132 // if err != nil { 133 // return err 134 // } 135 // return nil 136 // }) 137 // } 138 // 139 // ``` 140 // <!--End PulumiCodeChooser --> 141 // 142 // ## Import 143 // 144 // Using `pulumi import`, import certificates using their ARN. For example: 145 // 146 // ```sh 147 // $ pulumi import aws:acm/certificate:Certificate cert arn:aws:acm:eu-central-1:123456789012:certificate/7e7a28d2-163f-4b8f-b9cd-822f96c08d6a 148 // ``` 149 type Certificate struct { 150 pulumi.CustomResourceState 151 152 // ARN of the certificate 153 Arn pulumi.StringOutput `pulumi:"arn"` 154 // ARN of an ACM PCA 155 CertificateAuthorityArn pulumi.StringPtrOutput `pulumi:"certificateAuthorityArn"` 156 // Certificate's PEM-formatted public key 157 CertificateBody pulumi.StringPtrOutput `pulumi:"certificateBody"` 158 // Certificate's PEM-formatted chain 159 // * Creating a private CA issued certificate 160 CertificateChain pulumi.StringPtrOutput `pulumi:"certificateChain"` 161 // Fully qualified domain name (FQDN) in the certificate. 162 DomainName pulumi.StringOutput `pulumi:"domainName"` 163 // Set of domain validation objects which can be used to complete certificate validation. 164 // Can have more than one element, e.g., if SANs are defined. 165 // Only set if `DNS`-validation was used. 166 DomainValidationOptions CertificateDomainValidationOptionArrayOutput `pulumi:"domainValidationOptions"` 167 // Amount of time to start automatic renewal process before expiration. 168 // Has no effect if less than 60 days. 169 // Represented by either 170 // a subset of [RFC 3339 duration](https://www.rfc-editor.org/rfc/rfc3339) supporting years, months, and days (e.g., `P90D`), 171 // or a string such as `2160h`. 172 EarlyRenewalDuration pulumi.StringPtrOutput `pulumi:"earlyRenewalDuration"` 173 // Specifies the algorithm of the public and private key pair that your Amazon issued certificate uses to encrypt data. See [ACM Certificate characteristics](https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html#algorithms) for more details. 174 KeyAlgorithm pulumi.StringOutput `pulumi:"keyAlgorithm"` 175 // Expiration date and time of the certificate. 176 NotAfter pulumi.StringOutput `pulumi:"notAfter"` 177 // Start of the validity period of the certificate. 178 NotBefore pulumi.StringOutput `pulumi:"notBefore"` 179 // Configuration block used to set certificate options. Detailed below. 180 Options CertificateOptionsOutput `pulumi:"options"` 181 // `true` if a Private certificate eligible for managed renewal is within the `earlyRenewalDuration` period. 182 PendingRenewal pulumi.BoolOutput `pulumi:"pendingRenewal"` 183 // Certificate's PEM-formatted private key 184 PrivateKey pulumi.StringPtrOutput `pulumi:"privateKey"` 185 // Whether the certificate is eligible for managed renewal. 186 RenewalEligibility pulumi.StringOutput `pulumi:"renewalEligibility"` 187 // Contains information about the status of ACM's [managed renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) for the certificate. 188 RenewalSummaries CertificateRenewalSummaryArrayOutput `pulumi:"renewalSummaries"` 189 // Status of the certificate. 190 Status pulumi.StringOutput `pulumi:"status"` 191 // Set of domains that should be SANs in the issued certificate. 192 // To remove all elements of a previously configured list, set this value equal to an empty list (`[]`) 193 SubjectAlternativeNames pulumi.StringArrayOutput `pulumi:"subjectAlternativeNames"` 194 // 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. 195 Tags pulumi.StringMapOutput `pulumi:"tags"` 196 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 197 // 198 // Deprecated: Please use `tags` instead. 199 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 200 // Source of the certificate. 201 Type pulumi.StringOutput `pulumi:"type"` 202 // List of addresses that received a validation email. Only set if `EMAIL` validation was used. 203 ValidationEmails pulumi.StringArrayOutput `pulumi:"validationEmails"` 204 // Which method to use for validation. `DNS` or `EMAIL` are valid. This parameter must not be set for certificates that were imported into ACM and then into Pulumi. 205 ValidationMethod pulumi.StringOutput `pulumi:"validationMethod"` 206 // Configuration block used to specify information about the initial validation of each domain name. Detailed below. 207 // * Importing an existing certificate 208 ValidationOptions CertificateValidationOptionArrayOutput `pulumi:"validationOptions"` 209 } 210 211 // NewCertificate registers a new resource with the given unique name, arguments, and options. 212 func NewCertificate(ctx *pulumi.Context, 213 name string, args *CertificateArgs, opts ...pulumi.ResourceOption) (*Certificate, error) { 214 if args == nil { 215 args = &CertificateArgs{} 216 } 217 218 if args.PrivateKey != nil { 219 args.PrivateKey = pulumi.ToSecret(args.PrivateKey).(pulumi.StringPtrInput) 220 } 221 secrets := pulumi.AdditionalSecretOutputs([]string{ 222 "privateKey", 223 }) 224 opts = append(opts, secrets) 225 opts = internal.PkgResourceDefaultOpts(opts) 226 var resource Certificate 227 err := ctx.RegisterResource("aws:acm/certificate:Certificate", name, args, &resource, opts...) 228 if err != nil { 229 return nil, err 230 } 231 return &resource, nil 232 } 233 234 // GetCertificate gets an existing Certificate resource's state with the given name, ID, and optional 235 // state properties that are used to uniquely qualify the lookup (nil if not required). 236 func GetCertificate(ctx *pulumi.Context, 237 name string, id pulumi.IDInput, state *CertificateState, opts ...pulumi.ResourceOption) (*Certificate, error) { 238 var resource Certificate 239 err := ctx.ReadResource("aws:acm/certificate:Certificate", name, id, state, &resource, opts...) 240 if err != nil { 241 return nil, err 242 } 243 return &resource, nil 244 } 245 246 // Input properties used for looking up and filtering Certificate resources. 247 type certificateState struct { 248 // ARN of the certificate 249 Arn *string `pulumi:"arn"` 250 // ARN of an ACM PCA 251 CertificateAuthorityArn *string `pulumi:"certificateAuthorityArn"` 252 // Certificate's PEM-formatted public key 253 CertificateBody *string `pulumi:"certificateBody"` 254 // Certificate's PEM-formatted chain 255 // * Creating a private CA issued certificate 256 CertificateChain *string `pulumi:"certificateChain"` 257 // Fully qualified domain name (FQDN) in the certificate. 258 DomainName *string `pulumi:"domainName"` 259 // Set of domain validation objects which can be used to complete certificate validation. 260 // Can have more than one element, e.g., if SANs are defined. 261 // Only set if `DNS`-validation was used. 262 DomainValidationOptions []CertificateDomainValidationOption `pulumi:"domainValidationOptions"` 263 // Amount of time to start automatic renewal process before expiration. 264 // Has no effect if less than 60 days. 265 // Represented by either 266 // a subset of [RFC 3339 duration](https://www.rfc-editor.org/rfc/rfc3339) supporting years, months, and days (e.g., `P90D`), 267 // or a string such as `2160h`. 268 EarlyRenewalDuration *string `pulumi:"earlyRenewalDuration"` 269 // Specifies the algorithm of the public and private key pair that your Amazon issued certificate uses to encrypt data. See [ACM Certificate characteristics](https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html#algorithms) for more details. 270 KeyAlgorithm *string `pulumi:"keyAlgorithm"` 271 // Expiration date and time of the certificate. 272 NotAfter *string `pulumi:"notAfter"` 273 // Start of the validity period of the certificate. 274 NotBefore *string `pulumi:"notBefore"` 275 // Configuration block used to set certificate options. Detailed below. 276 Options *CertificateOptions `pulumi:"options"` 277 // `true` if a Private certificate eligible for managed renewal is within the `earlyRenewalDuration` period. 278 PendingRenewal *bool `pulumi:"pendingRenewal"` 279 // Certificate's PEM-formatted private key 280 PrivateKey *string `pulumi:"privateKey"` 281 // Whether the certificate is eligible for managed renewal. 282 RenewalEligibility *string `pulumi:"renewalEligibility"` 283 // Contains information about the status of ACM's [managed renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) for the certificate. 284 RenewalSummaries []CertificateRenewalSummary `pulumi:"renewalSummaries"` 285 // Status of the certificate. 286 Status *string `pulumi:"status"` 287 // Set of domains that should be SANs in the issued certificate. 288 // To remove all elements of a previously configured list, set this value equal to an empty list (`[]`) 289 SubjectAlternativeNames []string `pulumi:"subjectAlternativeNames"` 290 // 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. 291 Tags map[string]string `pulumi:"tags"` 292 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 293 // 294 // Deprecated: Please use `tags` instead. 295 TagsAll map[string]string `pulumi:"tagsAll"` 296 // Source of the certificate. 297 Type *string `pulumi:"type"` 298 // List of addresses that received a validation email. Only set if `EMAIL` validation was used. 299 ValidationEmails []string `pulumi:"validationEmails"` 300 // Which method to use for validation. `DNS` or `EMAIL` are valid. This parameter must not be set for certificates that were imported into ACM and then into Pulumi. 301 ValidationMethod *string `pulumi:"validationMethod"` 302 // Configuration block used to specify information about the initial validation of each domain name. Detailed below. 303 // * Importing an existing certificate 304 ValidationOptions []CertificateValidationOption `pulumi:"validationOptions"` 305 } 306 307 type CertificateState struct { 308 // ARN of the certificate 309 Arn pulumi.StringPtrInput 310 // ARN of an ACM PCA 311 CertificateAuthorityArn pulumi.StringPtrInput 312 // Certificate's PEM-formatted public key 313 CertificateBody pulumi.StringPtrInput 314 // Certificate's PEM-formatted chain 315 // * Creating a private CA issued certificate 316 CertificateChain pulumi.StringPtrInput 317 // Fully qualified domain name (FQDN) in the certificate. 318 DomainName pulumi.StringPtrInput 319 // Set of domain validation objects which can be used to complete certificate validation. 320 // Can have more than one element, e.g., if SANs are defined. 321 // Only set if `DNS`-validation was used. 322 DomainValidationOptions CertificateDomainValidationOptionArrayInput 323 // Amount of time to start automatic renewal process before expiration. 324 // Has no effect if less than 60 days. 325 // Represented by either 326 // a subset of [RFC 3339 duration](https://www.rfc-editor.org/rfc/rfc3339) supporting years, months, and days (e.g., `P90D`), 327 // or a string such as `2160h`. 328 EarlyRenewalDuration pulumi.StringPtrInput 329 // Specifies the algorithm of the public and private key pair that your Amazon issued certificate uses to encrypt data. See [ACM Certificate characteristics](https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html#algorithms) for more details. 330 KeyAlgorithm pulumi.StringPtrInput 331 // Expiration date and time of the certificate. 332 NotAfter pulumi.StringPtrInput 333 // Start of the validity period of the certificate. 334 NotBefore pulumi.StringPtrInput 335 // Configuration block used to set certificate options. Detailed below. 336 Options CertificateOptionsPtrInput 337 // `true` if a Private certificate eligible for managed renewal is within the `earlyRenewalDuration` period. 338 PendingRenewal pulumi.BoolPtrInput 339 // Certificate's PEM-formatted private key 340 PrivateKey pulumi.StringPtrInput 341 // Whether the certificate is eligible for managed renewal. 342 RenewalEligibility pulumi.StringPtrInput 343 // Contains information about the status of ACM's [managed renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) for the certificate. 344 RenewalSummaries CertificateRenewalSummaryArrayInput 345 // Status of the certificate. 346 Status pulumi.StringPtrInput 347 // Set of domains that should be SANs in the issued certificate. 348 // To remove all elements of a previously configured list, set this value equal to an empty list (`[]`) 349 SubjectAlternativeNames pulumi.StringArrayInput 350 // 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. 351 Tags pulumi.StringMapInput 352 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 353 // 354 // Deprecated: Please use `tags` instead. 355 TagsAll pulumi.StringMapInput 356 // Source of the certificate. 357 Type pulumi.StringPtrInput 358 // List of addresses that received a validation email. Only set if `EMAIL` validation was used. 359 ValidationEmails pulumi.StringArrayInput 360 // Which method to use for validation. `DNS` or `EMAIL` are valid. This parameter must not be set for certificates that were imported into ACM and then into Pulumi. 361 ValidationMethod pulumi.StringPtrInput 362 // Configuration block used to specify information about the initial validation of each domain name. Detailed below. 363 // * Importing an existing certificate 364 ValidationOptions CertificateValidationOptionArrayInput 365 } 366 367 func (CertificateState) ElementType() reflect.Type { 368 return reflect.TypeOf((*certificateState)(nil)).Elem() 369 } 370 371 type certificateArgs struct { 372 // ARN of an ACM PCA 373 CertificateAuthorityArn *string `pulumi:"certificateAuthorityArn"` 374 // Certificate's PEM-formatted public key 375 CertificateBody *string `pulumi:"certificateBody"` 376 // Certificate's PEM-formatted chain 377 // * Creating a private CA issued certificate 378 CertificateChain *string `pulumi:"certificateChain"` 379 // Fully qualified domain name (FQDN) in the certificate. 380 DomainName *string `pulumi:"domainName"` 381 // Amount of time to start automatic renewal process before expiration. 382 // Has no effect if less than 60 days. 383 // Represented by either 384 // a subset of [RFC 3339 duration](https://www.rfc-editor.org/rfc/rfc3339) supporting years, months, and days (e.g., `P90D`), 385 // or a string such as `2160h`. 386 EarlyRenewalDuration *string `pulumi:"earlyRenewalDuration"` 387 // Specifies the algorithm of the public and private key pair that your Amazon issued certificate uses to encrypt data. See [ACM Certificate characteristics](https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html#algorithms) for more details. 388 KeyAlgorithm *string `pulumi:"keyAlgorithm"` 389 // Configuration block used to set certificate options. Detailed below. 390 Options *CertificateOptions `pulumi:"options"` 391 // Certificate's PEM-formatted private key 392 PrivateKey *string `pulumi:"privateKey"` 393 // Set of domains that should be SANs in the issued certificate. 394 // To remove all elements of a previously configured list, set this value equal to an empty list (`[]`) 395 SubjectAlternativeNames []string `pulumi:"subjectAlternativeNames"` 396 // 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. 397 Tags map[string]string `pulumi:"tags"` 398 // Which method to use for validation. `DNS` or `EMAIL` are valid. This parameter must not be set for certificates that were imported into ACM and then into Pulumi. 399 ValidationMethod *string `pulumi:"validationMethod"` 400 // Configuration block used to specify information about the initial validation of each domain name. Detailed below. 401 // * Importing an existing certificate 402 ValidationOptions []CertificateValidationOption `pulumi:"validationOptions"` 403 } 404 405 // The set of arguments for constructing a Certificate resource. 406 type CertificateArgs struct { 407 // ARN of an ACM PCA 408 CertificateAuthorityArn pulumi.StringPtrInput 409 // Certificate's PEM-formatted public key 410 CertificateBody pulumi.StringPtrInput 411 // Certificate's PEM-formatted chain 412 // * Creating a private CA issued certificate 413 CertificateChain pulumi.StringPtrInput 414 // Fully qualified domain name (FQDN) in the certificate. 415 DomainName pulumi.StringPtrInput 416 // Amount of time to start automatic renewal process before expiration. 417 // Has no effect if less than 60 days. 418 // Represented by either 419 // a subset of [RFC 3339 duration](https://www.rfc-editor.org/rfc/rfc3339) supporting years, months, and days (e.g., `P90D`), 420 // or a string such as `2160h`. 421 EarlyRenewalDuration pulumi.StringPtrInput 422 // Specifies the algorithm of the public and private key pair that your Amazon issued certificate uses to encrypt data. See [ACM Certificate characteristics](https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html#algorithms) for more details. 423 KeyAlgorithm pulumi.StringPtrInput 424 // Configuration block used to set certificate options. Detailed below. 425 Options CertificateOptionsPtrInput 426 // Certificate's PEM-formatted private key 427 PrivateKey pulumi.StringPtrInput 428 // Set of domains that should be SANs in the issued certificate. 429 // To remove all elements of a previously configured list, set this value equal to an empty list (`[]`) 430 SubjectAlternativeNames pulumi.StringArrayInput 431 // 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. 432 Tags pulumi.StringMapInput 433 // Which method to use for validation. `DNS` or `EMAIL` are valid. This parameter must not be set for certificates that were imported into ACM and then into Pulumi. 434 ValidationMethod pulumi.StringPtrInput 435 // Configuration block used to specify information about the initial validation of each domain name. Detailed below. 436 // * Importing an existing certificate 437 ValidationOptions CertificateValidationOptionArrayInput 438 } 439 440 func (CertificateArgs) ElementType() reflect.Type { 441 return reflect.TypeOf((*certificateArgs)(nil)).Elem() 442 } 443 444 type CertificateInput interface { 445 pulumi.Input 446 447 ToCertificateOutput() CertificateOutput 448 ToCertificateOutputWithContext(ctx context.Context) CertificateOutput 449 } 450 451 func (*Certificate) ElementType() reflect.Type { 452 return reflect.TypeOf((**Certificate)(nil)).Elem() 453 } 454 455 func (i *Certificate) ToCertificateOutput() CertificateOutput { 456 return i.ToCertificateOutputWithContext(context.Background()) 457 } 458 459 func (i *Certificate) ToCertificateOutputWithContext(ctx context.Context) CertificateOutput { 460 return pulumi.ToOutputWithContext(ctx, i).(CertificateOutput) 461 } 462 463 // CertificateArrayInput is an input type that accepts CertificateArray and CertificateArrayOutput values. 464 // You can construct a concrete instance of `CertificateArrayInput` via: 465 // 466 // CertificateArray{ CertificateArgs{...} } 467 type CertificateArrayInput interface { 468 pulumi.Input 469 470 ToCertificateArrayOutput() CertificateArrayOutput 471 ToCertificateArrayOutputWithContext(context.Context) CertificateArrayOutput 472 } 473 474 type CertificateArray []CertificateInput 475 476 func (CertificateArray) ElementType() reflect.Type { 477 return reflect.TypeOf((*[]*Certificate)(nil)).Elem() 478 } 479 480 func (i CertificateArray) ToCertificateArrayOutput() CertificateArrayOutput { 481 return i.ToCertificateArrayOutputWithContext(context.Background()) 482 } 483 484 func (i CertificateArray) ToCertificateArrayOutputWithContext(ctx context.Context) CertificateArrayOutput { 485 return pulumi.ToOutputWithContext(ctx, i).(CertificateArrayOutput) 486 } 487 488 // CertificateMapInput is an input type that accepts CertificateMap and CertificateMapOutput values. 489 // You can construct a concrete instance of `CertificateMapInput` via: 490 // 491 // CertificateMap{ "key": CertificateArgs{...} } 492 type CertificateMapInput interface { 493 pulumi.Input 494 495 ToCertificateMapOutput() CertificateMapOutput 496 ToCertificateMapOutputWithContext(context.Context) CertificateMapOutput 497 } 498 499 type CertificateMap map[string]CertificateInput 500 501 func (CertificateMap) ElementType() reflect.Type { 502 return reflect.TypeOf((*map[string]*Certificate)(nil)).Elem() 503 } 504 505 func (i CertificateMap) ToCertificateMapOutput() CertificateMapOutput { 506 return i.ToCertificateMapOutputWithContext(context.Background()) 507 } 508 509 func (i CertificateMap) ToCertificateMapOutputWithContext(ctx context.Context) CertificateMapOutput { 510 return pulumi.ToOutputWithContext(ctx, i).(CertificateMapOutput) 511 } 512 513 type CertificateOutput struct{ *pulumi.OutputState } 514 515 func (CertificateOutput) ElementType() reflect.Type { 516 return reflect.TypeOf((**Certificate)(nil)).Elem() 517 } 518 519 func (o CertificateOutput) ToCertificateOutput() CertificateOutput { 520 return o 521 } 522 523 func (o CertificateOutput) ToCertificateOutputWithContext(ctx context.Context) CertificateOutput { 524 return o 525 } 526 527 // ARN of the certificate 528 func (o CertificateOutput) Arn() pulumi.StringOutput { 529 return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 530 } 531 532 // ARN of an ACM PCA 533 func (o CertificateOutput) CertificateAuthorityArn() pulumi.StringPtrOutput { 534 return o.ApplyT(func(v *Certificate) pulumi.StringPtrOutput { return v.CertificateAuthorityArn }).(pulumi.StringPtrOutput) 535 } 536 537 // Certificate's PEM-formatted public key 538 func (o CertificateOutput) CertificateBody() pulumi.StringPtrOutput { 539 return o.ApplyT(func(v *Certificate) pulumi.StringPtrOutput { return v.CertificateBody }).(pulumi.StringPtrOutput) 540 } 541 542 // Certificate's PEM-formatted chain 543 // * Creating a private CA issued certificate 544 func (o CertificateOutput) CertificateChain() pulumi.StringPtrOutput { 545 return o.ApplyT(func(v *Certificate) pulumi.StringPtrOutput { return v.CertificateChain }).(pulumi.StringPtrOutput) 546 } 547 548 // Fully qualified domain name (FQDN) in the certificate. 549 func (o CertificateOutput) DomainName() pulumi.StringOutput { 550 return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.DomainName }).(pulumi.StringOutput) 551 } 552 553 // Set of domain validation objects which can be used to complete certificate validation. 554 // Can have more than one element, e.g., if SANs are defined. 555 // Only set if `DNS`-validation was used. 556 func (o CertificateOutput) DomainValidationOptions() CertificateDomainValidationOptionArrayOutput { 557 return o.ApplyT(func(v *Certificate) CertificateDomainValidationOptionArrayOutput { return v.DomainValidationOptions }).(CertificateDomainValidationOptionArrayOutput) 558 } 559 560 // Amount of time to start automatic renewal process before expiration. 561 // Has no effect if less than 60 days. 562 // Represented by either 563 // a subset of [RFC 3339 duration](https://www.rfc-editor.org/rfc/rfc3339) supporting years, months, and days (e.g., `P90D`), 564 // or a string such as `2160h`. 565 func (o CertificateOutput) EarlyRenewalDuration() pulumi.StringPtrOutput { 566 return o.ApplyT(func(v *Certificate) pulumi.StringPtrOutput { return v.EarlyRenewalDuration }).(pulumi.StringPtrOutput) 567 } 568 569 // Specifies the algorithm of the public and private key pair that your Amazon issued certificate uses to encrypt data. See [ACM Certificate characteristics](https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html#algorithms) for more details. 570 func (o CertificateOutput) KeyAlgorithm() pulumi.StringOutput { 571 return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.KeyAlgorithm }).(pulumi.StringOutput) 572 } 573 574 // Expiration date and time of the certificate. 575 func (o CertificateOutput) NotAfter() pulumi.StringOutput { 576 return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.NotAfter }).(pulumi.StringOutput) 577 } 578 579 // Start of the validity period of the certificate. 580 func (o CertificateOutput) NotBefore() pulumi.StringOutput { 581 return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.NotBefore }).(pulumi.StringOutput) 582 } 583 584 // Configuration block used to set certificate options. Detailed below. 585 func (o CertificateOutput) Options() CertificateOptionsOutput { 586 return o.ApplyT(func(v *Certificate) CertificateOptionsOutput { return v.Options }).(CertificateOptionsOutput) 587 } 588 589 // `true` if a Private certificate eligible for managed renewal is within the `earlyRenewalDuration` period. 590 func (o CertificateOutput) PendingRenewal() pulumi.BoolOutput { 591 return o.ApplyT(func(v *Certificate) pulumi.BoolOutput { return v.PendingRenewal }).(pulumi.BoolOutput) 592 } 593 594 // Certificate's PEM-formatted private key 595 func (o CertificateOutput) PrivateKey() pulumi.StringPtrOutput { 596 return o.ApplyT(func(v *Certificate) pulumi.StringPtrOutput { return v.PrivateKey }).(pulumi.StringPtrOutput) 597 } 598 599 // Whether the certificate is eligible for managed renewal. 600 func (o CertificateOutput) RenewalEligibility() pulumi.StringOutput { 601 return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.RenewalEligibility }).(pulumi.StringOutput) 602 } 603 604 // Contains information about the status of ACM's [managed renewal](https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) for the certificate. 605 func (o CertificateOutput) RenewalSummaries() CertificateRenewalSummaryArrayOutput { 606 return o.ApplyT(func(v *Certificate) CertificateRenewalSummaryArrayOutput { return v.RenewalSummaries }).(CertificateRenewalSummaryArrayOutput) 607 } 608 609 // Status of the certificate. 610 func (o CertificateOutput) Status() pulumi.StringOutput { 611 return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) 612 } 613 614 // Set of domains that should be SANs in the issued certificate. 615 // To remove all elements of a previously configured list, set this value equal to an empty list (`[]`) 616 func (o CertificateOutput) SubjectAlternativeNames() pulumi.StringArrayOutput { 617 return o.ApplyT(func(v *Certificate) pulumi.StringArrayOutput { return v.SubjectAlternativeNames }).(pulumi.StringArrayOutput) 618 } 619 620 // 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. 621 func (o CertificateOutput) Tags() pulumi.StringMapOutput { 622 return o.ApplyT(func(v *Certificate) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 623 } 624 625 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 626 // 627 // Deprecated: Please use `tags` instead. 628 func (o CertificateOutput) TagsAll() pulumi.StringMapOutput { 629 return o.ApplyT(func(v *Certificate) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 630 } 631 632 // Source of the certificate. 633 func (o CertificateOutput) Type() pulumi.StringOutput { 634 return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) 635 } 636 637 // List of addresses that received a validation email. Only set if `EMAIL` validation was used. 638 func (o CertificateOutput) ValidationEmails() pulumi.StringArrayOutput { 639 return o.ApplyT(func(v *Certificate) pulumi.StringArrayOutput { return v.ValidationEmails }).(pulumi.StringArrayOutput) 640 } 641 642 // Which method to use for validation. `DNS` or `EMAIL` are valid. This parameter must not be set for certificates that were imported into ACM and then into Pulumi. 643 func (o CertificateOutput) ValidationMethod() pulumi.StringOutput { 644 return o.ApplyT(func(v *Certificate) pulumi.StringOutput { return v.ValidationMethod }).(pulumi.StringOutput) 645 } 646 647 // Configuration block used to specify information about the initial validation of each domain name. Detailed below. 648 // * Importing an existing certificate 649 func (o CertificateOutput) ValidationOptions() CertificateValidationOptionArrayOutput { 650 return o.ApplyT(func(v *Certificate) CertificateValidationOptionArrayOutput { return v.ValidationOptions }).(CertificateValidationOptionArrayOutput) 651 } 652 653 type CertificateArrayOutput struct{ *pulumi.OutputState } 654 655 func (CertificateArrayOutput) ElementType() reflect.Type { 656 return reflect.TypeOf((*[]*Certificate)(nil)).Elem() 657 } 658 659 func (o CertificateArrayOutput) ToCertificateArrayOutput() CertificateArrayOutput { 660 return o 661 } 662 663 func (o CertificateArrayOutput) ToCertificateArrayOutputWithContext(ctx context.Context) CertificateArrayOutput { 664 return o 665 } 666 667 func (o CertificateArrayOutput) Index(i pulumi.IntInput) CertificateOutput { 668 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Certificate { 669 return vs[0].([]*Certificate)[vs[1].(int)] 670 }).(CertificateOutput) 671 } 672 673 type CertificateMapOutput struct{ *pulumi.OutputState } 674 675 func (CertificateMapOutput) ElementType() reflect.Type { 676 return reflect.TypeOf((*map[string]*Certificate)(nil)).Elem() 677 } 678 679 func (o CertificateMapOutput) ToCertificateMapOutput() CertificateMapOutput { 680 return o 681 } 682 683 func (o CertificateMapOutput) ToCertificateMapOutputWithContext(ctx context.Context) CertificateMapOutput { 684 return o 685 } 686 687 func (o CertificateMapOutput) MapIndex(k pulumi.StringInput) CertificateOutput { 688 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Certificate { 689 return vs[0].(map[string]*Certificate)[vs[1].(string)] 690 }).(CertificateOutput) 691 } 692 693 func init() { 694 pulumi.RegisterInputType(reflect.TypeOf((*CertificateInput)(nil)).Elem(), &Certificate{}) 695 pulumi.RegisterInputType(reflect.TypeOf((*CertificateArrayInput)(nil)).Elem(), CertificateArray{}) 696 pulumi.RegisterInputType(reflect.TypeOf((*CertificateMapInput)(nil)).Elem(), CertificateMap{}) 697 pulumi.RegisterOutputType(CertificateOutput{}) 698 pulumi.RegisterOutputType(CertificateArrayOutput{}) 699 pulumi.RegisterOutputType(CertificateMapOutput{}) 700 }