github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/route53/trafficPolicyInstance.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 route53
     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  // Provides a Route53 traffic policy instance resource.
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/route53"
    26  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			_, err := route53.NewTrafficPolicyInstance(ctx, "test", &route53.TrafficPolicyInstanceArgs{
    33  //				Name:                 pulumi.String("test.example.com"),
    34  //				TrafficPolicyId:      pulumi.String("b3gb108f-ea6f-45a5-baab-9d112d8b4037"),
    35  //				TrafficPolicyVersion: pulumi.Int(1),
    36  //				HostedZoneId:         pulumi.String("Z033120931TAQO548OGJC"),
    37  //				Ttl:                  pulumi.Int(360),
    38  //			})
    39  //			if err != nil {
    40  //				return err
    41  //			}
    42  //			return nil
    43  //		})
    44  //	}
    45  //
    46  // ```
    47  // <!--End PulumiCodeChooser -->
    48  //
    49  // ## Import
    50  //
    51  // Using `pulumi import`, import Route53 traffic policy instance using its id. For example:
    52  //
    53  // ```sh
    54  // $ pulumi import aws:route53/trafficPolicyInstance:TrafficPolicyInstance test df579d9a-6396-410e-ac22-e7ad60cf9e7e
    55  // ```
    56  type TrafficPolicyInstance struct {
    57  	pulumi.CustomResourceState
    58  
    59  	// ID of the hosted zone that you want Amazon Route 53 to create resource record sets in by using the configuration in a traffic policy.
    60  	HostedZoneId pulumi.StringOutput `pulumi:"hostedZoneId"`
    61  	// Domain name for which Amazon Route 53 responds to DNS queries by using the resource record sets that Route 53 creates for this traffic policy instance.
    62  	Name pulumi.StringOutput `pulumi:"name"`
    63  	// ID of the traffic policy that you want to use to create resource record sets in the specified hosted zone.
    64  	TrafficPolicyId pulumi.StringOutput `pulumi:"trafficPolicyId"`
    65  	// Version of the traffic policy
    66  	TrafficPolicyVersion pulumi.IntOutput `pulumi:"trafficPolicyVersion"`
    67  	// TTL that you want Amazon Route 53 to assign to all the resource record sets that it creates in the specified hosted zone.
    68  	Ttl pulumi.IntOutput `pulumi:"ttl"`
    69  }
    70  
    71  // NewTrafficPolicyInstance registers a new resource with the given unique name, arguments, and options.
    72  func NewTrafficPolicyInstance(ctx *pulumi.Context,
    73  	name string, args *TrafficPolicyInstanceArgs, opts ...pulumi.ResourceOption) (*TrafficPolicyInstance, error) {
    74  	if args == nil {
    75  		return nil, errors.New("missing one or more required arguments")
    76  	}
    77  
    78  	if args.HostedZoneId == nil {
    79  		return nil, errors.New("invalid value for required argument 'HostedZoneId'")
    80  	}
    81  	if args.TrafficPolicyId == nil {
    82  		return nil, errors.New("invalid value for required argument 'TrafficPolicyId'")
    83  	}
    84  	if args.TrafficPolicyVersion == nil {
    85  		return nil, errors.New("invalid value for required argument 'TrafficPolicyVersion'")
    86  	}
    87  	if args.Ttl == nil {
    88  		return nil, errors.New("invalid value for required argument 'Ttl'")
    89  	}
    90  	opts = internal.PkgResourceDefaultOpts(opts)
    91  	var resource TrafficPolicyInstance
    92  	err := ctx.RegisterResource("aws:route53/trafficPolicyInstance:TrafficPolicyInstance", name, args, &resource, opts...)
    93  	if err != nil {
    94  		return nil, err
    95  	}
    96  	return &resource, nil
    97  }
    98  
    99  // GetTrafficPolicyInstance gets an existing TrafficPolicyInstance resource's state with the given name, ID, and optional
   100  // state properties that are used to uniquely qualify the lookup (nil if not required).
   101  func GetTrafficPolicyInstance(ctx *pulumi.Context,
   102  	name string, id pulumi.IDInput, state *TrafficPolicyInstanceState, opts ...pulumi.ResourceOption) (*TrafficPolicyInstance, error) {
   103  	var resource TrafficPolicyInstance
   104  	err := ctx.ReadResource("aws:route53/trafficPolicyInstance:TrafficPolicyInstance", name, id, state, &resource, opts...)
   105  	if err != nil {
   106  		return nil, err
   107  	}
   108  	return &resource, nil
   109  }
   110  
   111  // Input properties used for looking up and filtering TrafficPolicyInstance resources.
   112  type trafficPolicyInstanceState struct {
   113  	// ID of the hosted zone that you want Amazon Route 53 to create resource record sets in by using the configuration in a traffic policy.
   114  	HostedZoneId *string `pulumi:"hostedZoneId"`
   115  	// Domain name for which Amazon Route 53 responds to DNS queries by using the resource record sets that Route 53 creates for this traffic policy instance.
   116  	Name *string `pulumi:"name"`
   117  	// ID of the traffic policy that you want to use to create resource record sets in the specified hosted zone.
   118  	TrafficPolicyId *string `pulumi:"trafficPolicyId"`
   119  	// Version of the traffic policy
   120  	TrafficPolicyVersion *int `pulumi:"trafficPolicyVersion"`
   121  	// TTL that you want Amazon Route 53 to assign to all the resource record sets that it creates in the specified hosted zone.
   122  	Ttl *int `pulumi:"ttl"`
   123  }
   124  
   125  type TrafficPolicyInstanceState struct {
   126  	// ID of the hosted zone that you want Amazon Route 53 to create resource record sets in by using the configuration in a traffic policy.
   127  	HostedZoneId pulumi.StringPtrInput
   128  	// Domain name for which Amazon Route 53 responds to DNS queries by using the resource record sets that Route 53 creates for this traffic policy instance.
   129  	Name pulumi.StringPtrInput
   130  	// ID of the traffic policy that you want to use to create resource record sets in the specified hosted zone.
   131  	TrafficPolicyId pulumi.StringPtrInput
   132  	// Version of the traffic policy
   133  	TrafficPolicyVersion pulumi.IntPtrInput
   134  	// TTL that you want Amazon Route 53 to assign to all the resource record sets that it creates in the specified hosted zone.
   135  	Ttl pulumi.IntPtrInput
   136  }
   137  
   138  func (TrafficPolicyInstanceState) ElementType() reflect.Type {
   139  	return reflect.TypeOf((*trafficPolicyInstanceState)(nil)).Elem()
   140  }
   141  
   142  type trafficPolicyInstanceArgs struct {
   143  	// ID of the hosted zone that you want Amazon Route 53 to create resource record sets in by using the configuration in a traffic policy.
   144  	HostedZoneId string `pulumi:"hostedZoneId"`
   145  	// Domain name for which Amazon Route 53 responds to DNS queries by using the resource record sets that Route 53 creates for this traffic policy instance.
   146  	Name *string `pulumi:"name"`
   147  	// ID of the traffic policy that you want to use to create resource record sets in the specified hosted zone.
   148  	TrafficPolicyId string `pulumi:"trafficPolicyId"`
   149  	// Version of the traffic policy
   150  	TrafficPolicyVersion int `pulumi:"trafficPolicyVersion"`
   151  	// TTL that you want Amazon Route 53 to assign to all the resource record sets that it creates in the specified hosted zone.
   152  	Ttl int `pulumi:"ttl"`
   153  }
   154  
   155  // The set of arguments for constructing a TrafficPolicyInstance resource.
   156  type TrafficPolicyInstanceArgs struct {
   157  	// ID of the hosted zone that you want Amazon Route 53 to create resource record sets in by using the configuration in a traffic policy.
   158  	HostedZoneId pulumi.StringInput
   159  	// Domain name for which Amazon Route 53 responds to DNS queries by using the resource record sets that Route 53 creates for this traffic policy instance.
   160  	Name pulumi.StringPtrInput
   161  	// ID of the traffic policy that you want to use to create resource record sets in the specified hosted zone.
   162  	TrafficPolicyId pulumi.StringInput
   163  	// Version of the traffic policy
   164  	TrafficPolicyVersion pulumi.IntInput
   165  	// TTL that you want Amazon Route 53 to assign to all the resource record sets that it creates in the specified hosted zone.
   166  	Ttl pulumi.IntInput
   167  }
   168  
   169  func (TrafficPolicyInstanceArgs) ElementType() reflect.Type {
   170  	return reflect.TypeOf((*trafficPolicyInstanceArgs)(nil)).Elem()
   171  }
   172  
   173  type TrafficPolicyInstanceInput interface {
   174  	pulumi.Input
   175  
   176  	ToTrafficPolicyInstanceOutput() TrafficPolicyInstanceOutput
   177  	ToTrafficPolicyInstanceOutputWithContext(ctx context.Context) TrafficPolicyInstanceOutput
   178  }
   179  
   180  func (*TrafficPolicyInstance) ElementType() reflect.Type {
   181  	return reflect.TypeOf((**TrafficPolicyInstance)(nil)).Elem()
   182  }
   183  
   184  func (i *TrafficPolicyInstance) ToTrafficPolicyInstanceOutput() TrafficPolicyInstanceOutput {
   185  	return i.ToTrafficPolicyInstanceOutputWithContext(context.Background())
   186  }
   187  
   188  func (i *TrafficPolicyInstance) ToTrafficPolicyInstanceOutputWithContext(ctx context.Context) TrafficPolicyInstanceOutput {
   189  	return pulumi.ToOutputWithContext(ctx, i).(TrafficPolicyInstanceOutput)
   190  }
   191  
   192  // TrafficPolicyInstanceArrayInput is an input type that accepts TrafficPolicyInstanceArray and TrafficPolicyInstanceArrayOutput values.
   193  // You can construct a concrete instance of `TrafficPolicyInstanceArrayInput` via:
   194  //
   195  //	TrafficPolicyInstanceArray{ TrafficPolicyInstanceArgs{...} }
   196  type TrafficPolicyInstanceArrayInput interface {
   197  	pulumi.Input
   198  
   199  	ToTrafficPolicyInstanceArrayOutput() TrafficPolicyInstanceArrayOutput
   200  	ToTrafficPolicyInstanceArrayOutputWithContext(context.Context) TrafficPolicyInstanceArrayOutput
   201  }
   202  
   203  type TrafficPolicyInstanceArray []TrafficPolicyInstanceInput
   204  
   205  func (TrafficPolicyInstanceArray) ElementType() reflect.Type {
   206  	return reflect.TypeOf((*[]*TrafficPolicyInstance)(nil)).Elem()
   207  }
   208  
   209  func (i TrafficPolicyInstanceArray) ToTrafficPolicyInstanceArrayOutput() TrafficPolicyInstanceArrayOutput {
   210  	return i.ToTrafficPolicyInstanceArrayOutputWithContext(context.Background())
   211  }
   212  
   213  func (i TrafficPolicyInstanceArray) ToTrafficPolicyInstanceArrayOutputWithContext(ctx context.Context) TrafficPolicyInstanceArrayOutput {
   214  	return pulumi.ToOutputWithContext(ctx, i).(TrafficPolicyInstanceArrayOutput)
   215  }
   216  
   217  // TrafficPolicyInstanceMapInput is an input type that accepts TrafficPolicyInstanceMap and TrafficPolicyInstanceMapOutput values.
   218  // You can construct a concrete instance of `TrafficPolicyInstanceMapInput` via:
   219  //
   220  //	TrafficPolicyInstanceMap{ "key": TrafficPolicyInstanceArgs{...} }
   221  type TrafficPolicyInstanceMapInput interface {
   222  	pulumi.Input
   223  
   224  	ToTrafficPolicyInstanceMapOutput() TrafficPolicyInstanceMapOutput
   225  	ToTrafficPolicyInstanceMapOutputWithContext(context.Context) TrafficPolicyInstanceMapOutput
   226  }
   227  
   228  type TrafficPolicyInstanceMap map[string]TrafficPolicyInstanceInput
   229  
   230  func (TrafficPolicyInstanceMap) ElementType() reflect.Type {
   231  	return reflect.TypeOf((*map[string]*TrafficPolicyInstance)(nil)).Elem()
   232  }
   233  
   234  func (i TrafficPolicyInstanceMap) ToTrafficPolicyInstanceMapOutput() TrafficPolicyInstanceMapOutput {
   235  	return i.ToTrafficPolicyInstanceMapOutputWithContext(context.Background())
   236  }
   237  
   238  func (i TrafficPolicyInstanceMap) ToTrafficPolicyInstanceMapOutputWithContext(ctx context.Context) TrafficPolicyInstanceMapOutput {
   239  	return pulumi.ToOutputWithContext(ctx, i).(TrafficPolicyInstanceMapOutput)
   240  }
   241  
   242  type TrafficPolicyInstanceOutput struct{ *pulumi.OutputState }
   243  
   244  func (TrafficPolicyInstanceOutput) ElementType() reflect.Type {
   245  	return reflect.TypeOf((**TrafficPolicyInstance)(nil)).Elem()
   246  }
   247  
   248  func (o TrafficPolicyInstanceOutput) ToTrafficPolicyInstanceOutput() TrafficPolicyInstanceOutput {
   249  	return o
   250  }
   251  
   252  func (o TrafficPolicyInstanceOutput) ToTrafficPolicyInstanceOutputWithContext(ctx context.Context) TrafficPolicyInstanceOutput {
   253  	return o
   254  }
   255  
   256  // ID of the hosted zone that you want Amazon Route 53 to create resource record sets in by using the configuration in a traffic policy.
   257  func (o TrafficPolicyInstanceOutput) HostedZoneId() pulumi.StringOutput {
   258  	return o.ApplyT(func(v *TrafficPolicyInstance) pulumi.StringOutput { return v.HostedZoneId }).(pulumi.StringOutput)
   259  }
   260  
   261  // Domain name for which Amazon Route 53 responds to DNS queries by using the resource record sets that Route 53 creates for this traffic policy instance.
   262  func (o TrafficPolicyInstanceOutput) Name() pulumi.StringOutput {
   263  	return o.ApplyT(func(v *TrafficPolicyInstance) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   264  }
   265  
   266  // ID of the traffic policy that you want to use to create resource record sets in the specified hosted zone.
   267  func (o TrafficPolicyInstanceOutput) TrafficPolicyId() pulumi.StringOutput {
   268  	return o.ApplyT(func(v *TrafficPolicyInstance) pulumi.StringOutput { return v.TrafficPolicyId }).(pulumi.StringOutput)
   269  }
   270  
   271  // Version of the traffic policy
   272  func (o TrafficPolicyInstanceOutput) TrafficPolicyVersion() pulumi.IntOutput {
   273  	return o.ApplyT(func(v *TrafficPolicyInstance) pulumi.IntOutput { return v.TrafficPolicyVersion }).(pulumi.IntOutput)
   274  }
   275  
   276  // TTL that you want Amazon Route 53 to assign to all the resource record sets that it creates in the specified hosted zone.
   277  func (o TrafficPolicyInstanceOutput) Ttl() pulumi.IntOutput {
   278  	return o.ApplyT(func(v *TrafficPolicyInstance) pulumi.IntOutput { return v.Ttl }).(pulumi.IntOutput)
   279  }
   280  
   281  type TrafficPolicyInstanceArrayOutput struct{ *pulumi.OutputState }
   282  
   283  func (TrafficPolicyInstanceArrayOutput) ElementType() reflect.Type {
   284  	return reflect.TypeOf((*[]*TrafficPolicyInstance)(nil)).Elem()
   285  }
   286  
   287  func (o TrafficPolicyInstanceArrayOutput) ToTrafficPolicyInstanceArrayOutput() TrafficPolicyInstanceArrayOutput {
   288  	return o
   289  }
   290  
   291  func (o TrafficPolicyInstanceArrayOutput) ToTrafficPolicyInstanceArrayOutputWithContext(ctx context.Context) TrafficPolicyInstanceArrayOutput {
   292  	return o
   293  }
   294  
   295  func (o TrafficPolicyInstanceArrayOutput) Index(i pulumi.IntInput) TrafficPolicyInstanceOutput {
   296  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *TrafficPolicyInstance {
   297  		return vs[0].([]*TrafficPolicyInstance)[vs[1].(int)]
   298  	}).(TrafficPolicyInstanceOutput)
   299  }
   300  
   301  type TrafficPolicyInstanceMapOutput struct{ *pulumi.OutputState }
   302  
   303  func (TrafficPolicyInstanceMapOutput) ElementType() reflect.Type {
   304  	return reflect.TypeOf((*map[string]*TrafficPolicyInstance)(nil)).Elem()
   305  }
   306  
   307  func (o TrafficPolicyInstanceMapOutput) ToTrafficPolicyInstanceMapOutput() TrafficPolicyInstanceMapOutput {
   308  	return o
   309  }
   310  
   311  func (o TrafficPolicyInstanceMapOutput) ToTrafficPolicyInstanceMapOutputWithContext(ctx context.Context) TrafficPolicyInstanceMapOutput {
   312  	return o
   313  }
   314  
   315  func (o TrafficPolicyInstanceMapOutput) MapIndex(k pulumi.StringInput) TrafficPolicyInstanceOutput {
   316  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *TrafficPolicyInstance {
   317  		return vs[0].(map[string]*TrafficPolicyInstance)[vs[1].(string)]
   318  	}).(TrafficPolicyInstanceOutput)
   319  }
   320  
   321  func init() {
   322  	pulumi.RegisterInputType(reflect.TypeOf((*TrafficPolicyInstanceInput)(nil)).Elem(), &TrafficPolicyInstance{})
   323  	pulumi.RegisterInputType(reflect.TypeOf((*TrafficPolicyInstanceArrayInput)(nil)).Elem(), TrafficPolicyInstanceArray{})
   324  	pulumi.RegisterInputType(reflect.TypeOf((*TrafficPolicyInstanceMapInput)(nil)).Elem(), TrafficPolicyInstanceMap{})
   325  	pulumi.RegisterOutputType(TrafficPolicyInstanceOutput{})
   326  	pulumi.RegisterOutputType(TrafficPolicyInstanceArrayOutput{})
   327  	pulumi.RegisterOutputType(TrafficPolicyInstanceMapOutput{})
   328  }