github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ses/domainIdentityVerification.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 ses
     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  // Represents a successful verification of an SES domain identity.
    16  //
    17  // Most commonly, this resource is used together with `route53.Record` and
    18  // `ses.DomainIdentity` to request an SES domain identity,
    19  // deploy the required DNS verification records, and wait for verification to complete.
    20  //
    21  // > **WARNING:** This resource implements a part of the verification workflow. It does not represent a real-world entity in AWS, therefore changing or deleting this resource on its own has no immediate effect.
    22  //
    23  // ## Example Usage
    24  //
    25  // <!--Start PulumiCodeChooser -->
    26  // ```go
    27  // package main
    28  //
    29  // import (
    30  //
    31  //	"fmt"
    32  //
    33  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/route53"
    34  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ses"
    35  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    36  //
    37  // )
    38  //
    39  //	func main() {
    40  //		pulumi.Run(func(ctx *pulumi.Context) error {
    41  //			example, err := ses.NewDomainIdentity(ctx, "example", &ses.DomainIdentityArgs{
    42  //				Domain: pulumi.String("example.com"),
    43  //			})
    44  //			if err != nil {
    45  //				return err
    46  //			}
    47  //			exampleAmazonsesVerificationRecord, err := route53.NewRecord(ctx, "example_amazonses_verification_record", &route53.RecordArgs{
    48  //				ZoneId: pulumi.Any(exampleAwsRoute53Zone.ZoneId),
    49  //				Name: example.ID().ApplyT(func(id string) (string, error) {
    50  //					return fmt.Sprintf("_amazonses.%v", id), nil
    51  //				}).(pulumi.StringOutput),
    52  //				Type: pulumi.String(route53.RecordTypeTXT),
    53  //				Ttl:  pulumi.Int(600),
    54  //				Records: pulumi.StringArray{
    55  //					example.VerificationToken,
    56  //				},
    57  //			})
    58  //			if err != nil {
    59  //				return err
    60  //			}
    61  //			_, err = ses.NewDomainIdentityVerification(ctx, "example_verification", &ses.DomainIdentityVerificationArgs{
    62  //				Domain: example.ID(),
    63  //			}, pulumi.DependsOn([]pulumi.Resource{
    64  //				exampleAmazonsesVerificationRecord,
    65  //			}))
    66  //			if err != nil {
    67  //				return err
    68  //			}
    69  //			return nil
    70  //		})
    71  //	}
    72  //
    73  // ```
    74  // <!--End PulumiCodeChooser -->
    75  type DomainIdentityVerification struct {
    76  	pulumi.CustomResourceState
    77  
    78  	// The ARN of the domain identity.
    79  	Arn pulumi.StringOutput `pulumi:"arn"`
    80  	// The domain name of the SES domain identity to verify.
    81  	Domain pulumi.StringOutput `pulumi:"domain"`
    82  }
    83  
    84  // NewDomainIdentityVerification registers a new resource with the given unique name, arguments, and options.
    85  func NewDomainIdentityVerification(ctx *pulumi.Context,
    86  	name string, args *DomainIdentityVerificationArgs, opts ...pulumi.ResourceOption) (*DomainIdentityVerification, error) {
    87  	if args == nil {
    88  		return nil, errors.New("missing one or more required arguments")
    89  	}
    90  
    91  	if args.Domain == nil {
    92  		return nil, errors.New("invalid value for required argument 'Domain'")
    93  	}
    94  	opts = internal.PkgResourceDefaultOpts(opts)
    95  	var resource DomainIdentityVerification
    96  	err := ctx.RegisterResource("aws:ses/domainIdentityVerification:DomainIdentityVerification", name, args, &resource, opts...)
    97  	if err != nil {
    98  		return nil, err
    99  	}
   100  	return &resource, nil
   101  }
   102  
   103  // GetDomainIdentityVerification gets an existing DomainIdentityVerification resource's state with the given name, ID, and optional
   104  // state properties that are used to uniquely qualify the lookup (nil if not required).
   105  func GetDomainIdentityVerification(ctx *pulumi.Context,
   106  	name string, id pulumi.IDInput, state *DomainIdentityVerificationState, opts ...pulumi.ResourceOption) (*DomainIdentityVerification, error) {
   107  	var resource DomainIdentityVerification
   108  	err := ctx.ReadResource("aws:ses/domainIdentityVerification:DomainIdentityVerification", name, id, state, &resource, opts...)
   109  	if err != nil {
   110  		return nil, err
   111  	}
   112  	return &resource, nil
   113  }
   114  
   115  // Input properties used for looking up and filtering DomainIdentityVerification resources.
   116  type domainIdentityVerificationState struct {
   117  	// The ARN of the domain identity.
   118  	Arn *string `pulumi:"arn"`
   119  	// The domain name of the SES domain identity to verify.
   120  	Domain *string `pulumi:"domain"`
   121  }
   122  
   123  type DomainIdentityVerificationState struct {
   124  	// The ARN of the domain identity.
   125  	Arn pulumi.StringPtrInput
   126  	// The domain name of the SES domain identity to verify.
   127  	Domain pulumi.StringPtrInput
   128  }
   129  
   130  func (DomainIdentityVerificationState) ElementType() reflect.Type {
   131  	return reflect.TypeOf((*domainIdentityVerificationState)(nil)).Elem()
   132  }
   133  
   134  type domainIdentityVerificationArgs struct {
   135  	// The domain name of the SES domain identity to verify.
   136  	Domain string `pulumi:"domain"`
   137  }
   138  
   139  // The set of arguments for constructing a DomainIdentityVerification resource.
   140  type DomainIdentityVerificationArgs struct {
   141  	// The domain name of the SES domain identity to verify.
   142  	Domain pulumi.StringInput
   143  }
   144  
   145  func (DomainIdentityVerificationArgs) ElementType() reflect.Type {
   146  	return reflect.TypeOf((*domainIdentityVerificationArgs)(nil)).Elem()
   147  }
   148  
   149  type DomainIdentityVerificationInput interface {
   150  	pulumi.Input
   151  
   152  	ToDomainIdentityVerificationOutput() DomainIdentityVerificationOutput
   153  	ToDomainIdentityVerificationOutputWithContext(ctx context.Context) DomainIdentityVerificationOutput
   154  }
   155  
   156  func (*DomainIdentityVerification) ElementType() reflect.Type {
   157  	return reflect.TypeOf((**DomainIdentityVerification)(nil)).Elem()
   158  }
   159  
   160  func (i *DomainIdentityVerification) ToDomainIdentityVerificationOutput() DomainIdentityVerificationOutput {
   161  	return i.ToDomainIdentityVerificationOutputWithContext(context.Background())
   162  }
   163  
   164  func (i *DomainIdentityVerification) ToDomainIdentityVerificationOutputWithContext(ctx context.Context) DomainIdentityVerificationOutput {
   165  	return pulumi.ToOutputWithContext(ctx, i).(DomainIdentityVerificationOutput)
   166  }
   167  
   168  // DomainIdentityVerificationArrayInput is an input type that accepts DomainIdentityVerificationArray and DomainIdentityVerificationArrayOutput values.
   169  // You can construct a concrete instance of `DomainIdentityVerificationArrayInput` via:
   170  //
   171  //	DomainIdentityVerificationArray{ DomainIdentityVerificationArgs{...} }
   172  type DomainIdentityVerificationArrayInput interface {
   173  	pulumi.Input
   174  
   175  	ToDomainIdentityVerificationArrayOutput() DomainIdentityVerificationArrayOutput
   176  	ToDomainIdentityVerificationArrayOutputWithContext(context.Context) DomainIdentityVerificationArrayOutput
   177  }
   178  
   179  type DomainIdentityVerificationArray []DomainIdentityVerificationInput
   180  
   181  func (DomainIdentityVerificationArray) ElementType() reflect.Type {
   182  	return reflect.TypeOf((*[]*DomainIdentityVerification)(nil)).Elem()
   183  }
   184  
   185  func (i DomainIdentityVerificationArray) ToDomainIdentityVerificationArrayOutput() DomainIdentityVerificationArrayOutput {
   186  	return i.ToDomainIdentityVerificationArrayOutputWithContext(context.Background())
   187  }
   188  
   189  func (i DomainIdentityVerificationArray) ToDomainIdentityVerificationArrayOutputWithContext(ctx context.Context) DomainIdentityVerificationArrayOutput {
   190  	return pulumi.ToOutputWithContext(ctx, i).(DomainIdentityVerificationArrayOutput)
   191  }
   192  
   193  // DomainIdentityVerificationMapInput is an input type that accepts DomainIdentityVerificationMap and DomainIdentityVerificationMapOutput values.
   194  // You can construct a concrete instance of `DomainIdentityVerificationMapInput` via:
   195  //
   196  //	DomainIdentityVerificationMap{ "key": DomainIdentityVerificationArgs{...} }
   197  type DomainIdentityVerificationMapInput interface {
   198  	pulumi.Input
   199  
   200  	ToDomainIdentityVerificationMapOutput() DomainIdentityVerificationMapOutput
   201  	ToDomainIdentityVerificationMapOutputWithContext(context.Context) DomainIdentityVerificationMapOutput
   202  }
   203  
   204  type DomainIdentityVerificationMap map[string]DomainIdentityVerificationInput
   205  
   206  func (DomainIdentityVerificationMap) ElementType() reflect.Type {
   207  	return reflect.TypeOf((*map[string]*DomainIdentityVerification)(nil)).Elem()
   208  }
   209  
   210  func (i DomainIdentityVerificationMap) ToDomainIdentityVerificationMapOutput() DomainIdentityVerificationMapOutput {
   211  	return i.ToDomainIdentityVerificationMapOutputWithContext(context.Background())
   212  }
   213  
   214  func (i DomainIdentityVerificationMap) ToDomainIdentityVerificationMapOutputWithContext(ctx context.Context) DomainIdentityVerificationMapOutput {
   215  	return pulumi.ToOutputWithContext(ctx, i).(DomainIdentityVerificationMapOutput)
   216  }
   217  
   218  type DomainIdentityVerificationOutput struct{ *pulumi.OutputState }
   219  
   220  func (DomainIdentityVerificationOutput) ElementType() reflect.Type {
   221  	return reflect.TypeOf((**DomainIdentityVerification)(nil)).Elem()
   222  }
   223  
   224  func (o DomainIdentityVerificationOutput) ToDomainIdentityVerificationOutput() DomainIdentityVerificationOutput {
   225  	return o
   226  }
   227  
   228  func (o DomainIdentityVerificationOutput) ToDomainIdentityVerificationOutputWithContext(ctx context.Context) DomainIdentityVerificationOutput {
   229  	return o
   230  }
   231  
   232  // The ARN of the domain identity.
   233  func (o DomainIdentityVerificationOutput) Arn() pulumi.StringOutput {
   234  	return o.ApplyT(func(v *DomainIdentityVerification) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   235  }
   236  
   237  // The domain name of the SES domain identity to verify.
   238  func (o DomainIdentityVerificationOutput) Domain() pulumi.StringOutput {
   239  	return o.ApplyT(func(v *DomainIdentityVerification) pulumi.StringOutput { return v.Domain }).(pulumi.StringOutput)
   240  }
   241  
   242  type DomainIdentityVerificationArrayOutput struct{ *pulumi.OutputState }
   243  
   244  func (DomainIdentityVerificationArrayOutput) ElementType() reflect.Type {
   245  	return reflect.TypeOf((*[]*DomainIdentityVerification)(nil)).Elem()
   246  }
   247  
   248  func (o DomainIdentityVerificationArrayOutput) ToDomainIdentityVerificationArrayOutput() DomainIdentityVerificationArrayOutput {
   249  	return o
   250  }
   251  
   252  func (o DomainIdentityVerificationArrayOutput) ToDomainIdentityVerificationArrayOutputWithContext(ctx context.Context) DomainIdentityVerificationArrayOutput {
   253  	return o
   254  }
   255  
   256  func (o DomainIdentityVerificationArrayOutput) Index(i pulumi.IntInput) DomainIdentityVerificationOutput {
   257  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DomainIdentityVerification {
   258  		return vs[0].([]*DomainIdentityVerification)[vs[1].(int)]
   259  	}).(DomainIdentityVerificationOutput)
   260  }
   261  
   262  type DomainIdentityVerificationMapOutput struct{ *pulumi.OutputState }
   263  
   264  func (DomainIdentityVerificationMapOutput) ElementType() reflect.Type {
   265  	return reflect.TypeOf((*map[string]*DomainIdentityVerification)(nil)).Elem()
   266  }
   267  
   268  func (o DomainIdentityVerificationMapOutput) ToDomainIdentityVerificationMapOutput() DomainIdentityVerificationMapOutput {
   269  	return o
   270  }
   271  
   272  func (o DomainIdentityVerificationMapOutput) ToDomainIdentityVerificationMapOutputWithContext(ctx context.Context) DomainIdentityVerificationMapOutput {
   273  	return o
   274  }
   275  
   276  func (o DomainIdentityVerificationMapOutput) MapIndex(k pulumi.StringInput) DomainIdentityVerificationOutput {
   277  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DomainIdentityVerification {
   278  		return vs[0].(map[string]*DomainIdentityVerification)[vs[1].(string)]
   279  	}).(DomainIdentityVerificationOutput)
   280  }
   281  
   282  func init() {
   283  	pulumi.RegisterInputType(reflect.TypeOf((*DomainIdentityVerificationInput)(nil)).Elem(), &DomainIdentityVerification{})
   284  	pulumi.RegisterInputType(reflect.TypeOf((*DomainIdentityVerificationArrayInput)(nil)).Elem(), DomainIdentityVerificationArray{})
   285  	pulumi.RegisterInputType(reflect.TypeOf((*DomainIdentityVerificationMapInput)(nil)).Elem(), DomainIdentityVerificationMap{})
   286  	pulumi.RegisterOutputType(DomainIdentityVerificationOutput{})
   287  	pulumi.RegisterOutputType(DomainIdentityVerificationArrayOutput{})
   288  	pulumi.RegisterOutputType(DomainIdentityVerificationMapOutput{})
   289  }