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 }