github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/acm/certificateValidation.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  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // This resource represents a successful validation of an ACM certificate in concert
    16  // with other resources.
    17  //
    18  // Most commonly, this resource is used together with `route53.Record` and
    19  // `acm.Certificate` to request a DNS validated certificate,
    20  // deploy the required validation records and wait for validation to complete.
    21  //
    22  // > **WARNING:** This resource implements a part of the validation workflow. It does not represent a real-world entity in AWS, therefore changing or deleting this resource on its own has no immediate effect.
    23  //
    24  // ## Example Usage
    25  //
    26  // ### Email Validation
    27  //
    28  // In this situation, the resource is simply a waiter for manual email approval of ACM certificates.
    29  //
    30  // <!--Start PulumiCodeChooser -->
    31  // ```go
    32  // package main
    33  //
    34  // import (
    35  //
    36  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/acm"
    37  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    38  //
    39  // )
    40  //
    41  //	func main() {
    42  //		pulumi.Run(func(ctx *pulumi.Context) error {
    43  //			example, err := acm.NewCertificate(ctx, "example", &acm.CertificateArgs{
    44  //				DomainName:       pulumi.String("example.com"),
    45  //				ValidationMethod: pulumi.String("EMAIL"),
    46  //			})
    47  //			if err != nil {
    48  //				return err
    49  //			}
    50  //			_, err = acm.NewCertificateValidation(ctx, "example", &acm.CertificateValidationArgs{
    51  //				CertificateArn: example.Arn,
    52  //			})
    53  //			if err != nil {
    54  //				return err
    55  //			}
    56  //			return nil
    57  //		})
    58  //	}
    59  //
    60  // ```
    61  // <!--End PulumiCodeChooser -->
    62  type CertificateValidation struct {
    63  	pulumi.CustomResourceState
    64  
    65  	// ARN of the certificate that is being validated.
    66  	CertificateArn pulumi.StringOutput `pulumi:"certificateArn"`
    67  	// List of FQDNs that implement the validation. Only valid for DNS validation method ACM certificates. If this is set, the resource can implement additional sanity checks and has an explicit dependency on the resource that is implementing the validation
    68  	ValidationRecordFqdns pulumi.StringArrayOutput `pulumi:"validationRecordFqdns"`
    69  }
    70  
    71  // NewCertificateValidation registers a new resource with the given unique name, arguments, and options.
    72  func NewCertificateValidation(ctx *pulumi.Context,
    73  	name string, args *CertificateValidationArgs, opts ...pulumi.ResourceOption) (*CertificateValidation, error) {
    74  	if args == nil {
    75  		return nil, errors.New("missing one or more required arguments")
    76  	}
    77  
    78  	if args.CertificateArn == nil {
    79  		return nil, errors.New("invalid value for required argument 'CertificateArn'")
    80  	}
    81  	opts = internal.PkgResourceDefaultOpts(opts)
    82  	var resource CertificateValidation
    83  	err := ctx.RegisterResource("aws:acm/certificateValidation:CertificateValidation", name, args, &resource, opts...)
    84  	if err != nil {
    85  		return nil, err
    86  	}
    87  	return &resource, nil
    88  }
    89  
    90  // GetCertificateValidation gets an existing CertificateValidation resource's state with the given name, ID, and optional
    91  // state properties that are used to uniquely qualify the lookup (nil if not required).
    92  func GetCertificateValidation(ctx *pulumi.Context,
    93  	name string, id pulumi.IDInput, state *CertificateValidationState, opts ...pulumi.ResourceOption) (*CertificateValidation, error) {
    94  	var resource CertificateValidation
    95  	err := ctx.ReadResource("aws:acm/certificateValidation:CertificateValidation", name, id, state, &resource, opts...)
    96  	if err != nil {
    97  		return nil, err
    98  	}
    99  	return &resource, nil
   100  }
   101  
   102  // Input properties used for looking up and filtering CertificateValidation resources.
   103  type certificateValidationState struct {
   104  	// ARN of the certificate that is being validated.
   105  	CertificateArn *string `pulumi:"certificateArn"`
   106  	// List of FQDNs that implement the validation. Only valid for DNS validation method ACM certificates. If this is set, the resource can implement additional sanity checks and has an explicit dependency on the resource that is implementing the validation
   107  	ValidationRecordFqdns []string `pulumi:"validationRecordFqdns"`
   108  }
   109  
   110  type CertificateValidationState struct {
   111  	// ARN of the certificate that is being validated.
   112  	CertificateArn pulumi.StringPtrInput
   113  	// List of FQDNs that implement the validation. Only valid for DNS validation method ACM certificates. If this is set, the resource can implement additional sanity checks and has an explicit dependency on the resource that is implementing the validation
   114  	ValidationRecordFqdns pulumi.StringArrayInput
   115  }
   116  
   117  func (CertificateValidationState) ElementType() reflect.Type {
   118  	return reflect.TypeOf((*certificateValidationState)(nil)).Elem()
   119  }
   120  
   121  type certificateValidationArgs struct {
   122  	// ARN of the certificate that is being validated.
   123  	CertificateArn string `pulumi:"certificateArn"`
   124  	// List of FQDNs that implement the validation. Only valid for DNS validation method ACM certificates. If this is set, the resource can implement additional sanity checks and has an explicit dependency on the resource that is implementing the validation
   125  	ValidationRecordFqdns []string `pulumi:"validationRecordFqdns"`
   126  }
   127  
   128  // The set of arguments for constructing a CertificateValidation resource.
   129  type CertificateValidationArgs struct {
   130  	// ARN of the certificate that is being validated.
   131  	CertificateArn pulumi.StringInput
   132  	// List of FQDNs that implement the validation. Only valid for DNS validation method ACM certificates. If this is set, the resource can implement additional sanity checks and has an explicit dependency on the resource that is implementing the validation
   133  	ValidationRecordFqdns pulumi.StringArrayInput
   134  }
   135  
   136  func (CertificateValidationArgs) ElementType() reflect.Type {
   137  	return reflect.TypeOf((*certificateValidationArgs)(nil)).Elem()
   138  }
   139  
   140  type CertificateValidationInput interface {
   141  	pulumi.Input
   142  
   143  	ToCertificateValidationOutput() CertificateValidationOutput
   144  	ToCertificateValidationOutputWithContext(ctx context.Context) CertificateValidationOutput
   145  }
   146  
   147  func (*CertificateValidation) ElementType() reflect.Type {
   148  	return reflect.TypeOf((**CertificateValidation)(nil)).Elem()
   149  }
   150  
   151  func (i *CertificateValidation) ToCertificateValidationOutput() CertificateValidationOutput {
   152  	return i.ToCertificateValidationOutputWithContext(context.Background())
   153  }
   154  
   155  func (i *CertificateValidation) ToCertificateValidationOutputWithContext(ctx context.Context) CertificateValidationOutput {
   156  	return pulumi.ToOutputWithContext(ctx, i).(CertificateValidationOutput)
   157  }
   158  
   159  // CertificateValidationArrayInput is an input type that accepts CertificateValidationArray and CertificateValidationArrayOutput values.
   160  // You can construct a concrete instance of `CertificateValidationArrayInput` via:
   161  //
   162  //	CertificateValidationArray{ CertificateValidationArgs{...} }
   163  type CertificateValidationArrayInput interface {
   164  	pulumi.Input
   165  
   166  	ToCertificateValidationArrayOutput() CertificateValidationArrayOutput
   167  	ToCertificateValidationArrayOutputWithContext(context.Context) CertificateValidationArrayOutput
   168  }
   169  
   170  type CertificateValidationArray []CertificateValidationInput
   171  
   172  func (CertificateValidationArray) ElementType() reflect.Type {
   173  	return reflect.TypeOf((*[]*CertificateValidation)(nil)).Elem()
   174  }
   175  
   176  func (i CertificateValidationArray) ToCertificateValidationArrayOutput() CertificateValidationArrayOutput {
   177  	return i.ToCertificateValidationArrayOutputWithContext(context.Background())
   178  }
   179  
   180  func (i CertificateValidationArray) ToCertificateValidationArrayOutputWithContext(ctx context.Context) CertificateValidationArrayOutput {
   181  	return pulumi.ToOutputWithContext(ctx, i).(CertificateValidationArrayOutput)
   182  }
   183  
   184  // CertificateValidationMapInput is an input type that accepts CertificateValidationMap and CertificateValidationMapOutput values.
   185  // You can construct a concrete instance of `CertificateValidationMapInput` via:
   186  //
   187  //	CertificateValidationMap{ "key": CertificateValidationArgs{...} }
   188  type CertificateValidationMapInput interface {
   189  	pulumi.Input
   190  
   191  	ToCertificateValidationMapOutput() CertificateValidationMapOutput
   192  	ToCertificateValidationMapOutputWithContext(context.Context) CertificateValidationMapOutput
   193  }
   194  
   195  type CertificateValidationMap map[string]CertificateValidationInput
   196  
   197  func (CertificateValidationMap) ElementType() reflect.Type {
   198  	return reflect.TypeOf((*map[string]*CertificateValidation)(nil)).Elem()
   199  }
   200  
   201  func (i CertificateValidationMap) ToCertificateValidationMapOutput() CertificateValidationMapOutput {
   202  	return i.ToCertificateValidationMapOutputWithContext(context.Background())
   203  }
   204  
   205  func (i CertificateValidationMap) ToCertificateValidationMapOutputWithContext(ctx context.Context) CertificateValidationMapOutput {
   206  	return pulumi.ToOutputWithContext(ctx, i).(CertificateValidationMapOutput)
   207  }
   208  
   209  type CertificateValidationOutput struct{ *pulumi.OutputState }
   210  
   211  func (CertificateValidationOutput) ElementType() reflect.Type {
   212  	return reflect.TypeOf((**CertificateValidation)(nil)).Elem()
   213  }
   214  
   215  func (o CertificateValidationOutput) ToCertificateValidationOutput() CertificateValidationOutput {
   216  	return o
   217  }
   218  
   219  func (o CertificateValidationOutput) ToCertificateValidationOutputWithContext(ctx context.Context) CertificateValidationOutput {
   220  	return o
   221  }
   222  
   223  // ARN of the certificate that is being validated.
   224  func (o CertificateValidationOutput) CertificateArn() pulumi.StringOutput {
   225  	return o.ApplyT(func(v *CertificateValidation) pulumi.StringOutput { return v.CertificateArn }).(pulumi.StringOutput)
   226  }
   227  
   228  // List of FQDNs that implement the validation. Only valid for DNS validation method ACM certificates. If this is set, the resource can implement additional sanity checks and has an explicit dependency on the resource that is implementing the validation
   229  func (o CertificateValidationOutput) ValidationRecordFqdns() pulumi.StringArrayOutput {
   230  	return o.ApplyT(func(v *CertificateValidation) pulumi.StringArrayOutput { return v.ValidationRecordFqdns }).(pulumi.StringArrayOutput)
   231  }
   232  
   233  type CertificateValidationArrayOutput struct{ *pulumi.OutputState }
   234  
   235  func (CertificateValidationArrayOutput) ElementType() reflect.Type {
   236  	return reflect.TypeOf((*[]*CertificateValidation)(nil)).Elem()
   237  }
   238  
   239  func (o CertificateValidationArrayOutput) ToCertificateValidationArrayOutput() CertificateValidationArrayOutput {
   240  	return o
   241  }
   242  
   243  func (o CertificateValidationArrayOutput) ToCertificateValidationArrayOutputWithContext(ctx context.Context) CertificateValidationArrayOutput {
   244  	return o
   245  }
   246  
   247  func (o CertificateValidationArrayOutput) Index(i pulumi.IntInput) CertificateValidationOutput {
   248  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *CertificateValidation {
   249  		return vs[0].([]*CertificateValidation)[vs[1].(int)]
   250  	}).(CertificateValidationOutput)
   251  }
   252  
   253  type CertificateValidationMapOutput struct{ *pulumi.OutputState }
   254  
   255  func (CertificateValidationMapOutput) ElementType() reflect.Type {
   256  	return reflect.TypeOf((*map[string]*CertificateValidation)(nil)).Elem()
   257  }
   258  
   259  func (o CertificateValidationMapOutput) ToCertificateValidationMapOutput() CertificateValidationMapOutput {
   260  	return o
   261  }
   262  
   263  func (o CertificateValidationMapOutput) ToCertificateValidationMapOutputWithContext(ctx context.Context) CertificateValidationMapOutput {
   264  	return o
   265  }
   266  
   267  func (o CertificateValidationMapOutput) MapIndex(k pulumi.StringInput) CertificateValidationOutput {
   268  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *CertificateValidation {
   269  		return vs[0].(map[string]*CertificateValidation)[vs[1].(string)]
   270  	}).(CertificateValidationOutput)
   271  }
   272  
   273  func init() {
   274  	pulumi.RegisterInputType(reflect.TypeOf((*CertificateValidationInput)(nil)).Elem(), &CertificateValidation{})
   275  	pulumi.RegisterInputType(reflect.TypeOf((*CertificateValidationArrayInput)(nil)).Elem(), CertificateValidationArray{})
   276  	pulumi.RegisterInputType(reflect.TypeOf((*CertificateValidationMapInput)(nil)).Elem(), CertificateValidationMap{})
   277  	pulumi.RegisterOutputType(CertificateValidationOutput{})
   278  	pulumi.RegisterOutputType(CertificateValidationArrayOutput{})
   279  	pulumi.RegisterOutputType(CertificateValidationMapOutput{})
   280  }