github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/networkmanager/transitGatewayPeering.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 networkmanager
     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  // Creates a peering connection between an AWS Cloud WAN core network and an AWS Transit Gateway.
    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/networkmanager"
    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 := networkmanager.NewTransitGatewayPeering(ctx, "example", &networkmanager.TransitGatewayPeeringArgs{
    33  //				CoreNetworkId:     pulumi.Any(exampleAwsccNetworkmanagerCoreNetwork.Id),
    34  //				TransitGatewayArn: pulumi.Any(exampleAwsEc2TransitGateway.Arn),
    35  //			})
    36  //			if err != nil {
    37  //				return err
    38  //			}
    39  //			return nil
    40  //		})
    41  //	}
    42  //
    43  // ```
    44  // <!--End PulumiCodeChooser -->
    45  //
    46  // ## Import
    47  //
    48  // Using `pulumi import`, import `aws_networkmanager_transit_gateway_peering` using the peering ID. For example:
    49  //
    50  // ```sh
    51  // $ pulumi import aws:networkmanager/transitGatewayPeering:TransitGatewayPeering example peering-444555aaabbb11223
    52  // ```
    53  type TransitGatewayPeering struct {
    54  	pulumi.CustomResourceState
    55  
    56  	// Peering Amazon Resource Name (ARN).
    57  	Arn pulumi.StringOutput `pulumi:"arn"`
    58  	// The ARN of the core network.
    59  	CoreNetworkArn pulumi.StringOutput `pulumi:"coreNetworkArn"`
    60  	// The ID of a core network.
    61  	CoreNetworkId pulumi.StringOutput `pulumi:"coreNetworkId"`
    62  	// The edge location for the peer.
    63  	EdgeLocation pulumi.StringOutput `pulumi:"edgeLocation"`
    64  	// The ID of the account owner.
    65  	OwnerAccountId pulumi.StringOutput `pulumi:"ownerAccountId"`
    66  	// The type of peering. This will be `TRANSIT_GATEWAY`.
    67  	PeeringType pulumi.StringOutput `pulumi:"peeringType"`
    68  	// The resource ARN of the peer.
    69  	ResourceArn pulumi.StringOutput `pulumi:"resourceArn"`
    70  	// Key-value tags for the peering. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    71  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    72  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    73  	//
    74  	// Deprecated: Please use `tags` instead.
    75  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    76  	// The ARN of the transit gateway for the peering request.
    77  	TransitGatewayArn pulumi.StringOutput `pulumi:"transitGatewayArn"`
    78  	// The ID of the transit gateway peering attachment.
    79  	TransitGatewayPeeringAttachmentId pulumi.StringOutput `pulumi:"transitGatewayPeeringAttachmentId"`
    80  }
    81  
    82  // NewTransitGatewayPeering registers a new resource with the given unique name, arguments, and options.
    83  func NewTransitGatewayPeering(ctx *pulumi.Context,
    84  	name string, args *TransitGatewayPeeringArgs, opts ...pulumi.ResourceOption) (*TransitGatewayPeering, error) {
    85  	if args == nil {
    86  		return nil, errors.New("missing one or more required arguments")
    87  	}
    88  
    89  	if args.CoreNetworkId == nil {
    90  		return nil, errors.New("invalid value for required argument 'CoreNetworkId'")
    91  	}
    92  	if args.TransitGatewayArn == nil {
    93  		return nil, errors.New("invalid value for required argument 'TransitGatewayArn'")
    94  	}
    95  	opts = internal.PkgResourceDefaultOpts(opts)
    96  	var resource TransitGatewayPeering
    97  	err := ctx.RegisterResource("aws:networkmanager/transitGatewayPeering:TransitGatewayPeering", name, args, &resource, opts...)
    98  	if err != nil {
    99  		return nil, err
   100  	}
   101  	return &resource, nil
   102  }
   103  
   104  // GetTransitGatewayPeering gets an existing TransitGatewayPeering resource's state with the given name, ID, and optional
   105  // state properties that are used to uniquely qualify the lookup (nil if not required).
   106  func GetTransitGatewayPeering(ctx *pulumi.Context,
   107  	name string, id pulumi.IDInput, state *TransitGatewayPeeringState, opts ...pulumi.ResourceOption) (*TransitGatewayPeering, error) {
   108  	var resource TransitGatewayPeering
   109  	err := ctx.ReadResource("aws:networkmanager/transitGatewayPeering:TransitGatewayPeering", name, id, state, &resource, opts...)
   110  	if err != nil {
   111  		return nil, err
   112  	}
   113  	return &resource, nil
   114  }
   115  
   116  // Input properties used for looking up and filtering TransitGatewayPeering resources.
   117  type transitGatewayPeeringState struct {
   118  	// Peering Amazon Resource Name (ARN).
   119  	Arn *string `pulumi:"arn"`
   120  	// The ARN of the core network.
   121  	CoreNetworkArn *string `pulumi:"coreNetworkArn"`
   122  	// The ID of a core network.
   123  	CoreNetworkId *string `pulumi:"coreNetworkId"`
   124  	// The edge location for the peer.
   125  	EdgeLocation *string `pulumi:"edgeLocation"`
   126  	// The ID of the account owner.
   127  	OwnerAccountId *string `pulumi:"ownerAccountId"`
   128  	// The type of peering. This will be `TRANSIT_GATEWAY`.
   129  	PeeringType *string `pulumi:"peeringType"`
   130  	// The resource ARN of the peer.
   131  	ResourceArn *string `pulumi:"resourceArn"`
   132  	// Key-value tags for the peering. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   133  	Tags map[string]string `pulumi:"tags"`
   134  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   135  	//
   136  	// Deprecated: Please use `tags` instead.
   137  	TagsAll map[string]string `pulumi:"tagsAll"`
   138  	// The ARN of the transit gateway for the peering request.
   139  	TransitGatewayArn *string `pulumi:"transitGatewayArn"`
   140  	// The ID of the transit gateway peering attachment.
   141  	TransitGatewayPeeringAttachmentId *string `pulumi:"transitGatewayPeeringAttachmentId"`
   142  }
   143  
   144  type TransitGatewayPeeringState struct {
   145  	// Peering Amazon Resource Name (ARN).
   146  	Arn pulumi.StringPtrInput
   147  	// The ARN of the core network.
   148  	CoreNetworkArn pulumi.StringPtrInput
   149  	// The ID of a core network.
   150  	CoreNetworkId pulumi.StringPtrInput
   151  	// The edge location for the peer.
   152  	EdgeLocation pulumi.StringPtrInput
   153  	// The ID of the account owner.
   154  	OwnerAccountId pulumi.StringPtrInput
   155  	// The type of peering. This will be `TRANSIT_GATEWAY`.
   156  	PeeringType pulumi.StringPtrInput
   157  	// The resource ARN of the peer.
   158  	ResourceArn pulumi.StringPtrInput
   159  	// Key-value tags for the peering. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   160  	Tags pulumi.StringMapInput
   161  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   162  	//
   163  	// Deprecated: Please use `tags` instead.
   164  	TagsAll pulumi.StringMapInput
   165  	// The ARN of the transit gateway for the peering request.
   166  	TransitGatewayArn pulumi.StringPtrInput
   167  	// The ID of the transit gateway peering attachment.
   168  	TransitGatewayPeeringAttachmentId pulumi.StringPtrInput
   169  }
   170  
   171  func (TransitGatewayPeeringState) ElementType() reflect.Type {
   172  	return reflect.TypeOf((*transitGatewayPeeringState)(nil)).Elem()
   173  }
   174  
   175  type transitGatewayPeeringArgs struct {
   176  	// The ID of a core network.
   177  	CoreNetworkId string `pulumi:"coreNetworkId"`
   178  	// Key-value tags for the peering. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   179  	Tags map[string]string `pulumi:"tags"`
   180  	// The ARN of the transit gateway for the peering request.
   181  	TransitGatewayArn string `pulumi:"transitGatewayArn"`
   182  }
   183  
   184  // The set of arguments for constructing a TransitGatewayPeering resource.
   185  type TransitGatewayPeeringArgs struct {
   186  	// The ID of a core network.
   187  	CoreNetworkId pulumi.StringInput
   188  	// Key-value tags for the peering. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   189  	Tags pulumi.StringMapInput
   190  	// The ARN of the transit gateway for the peering request.
   191  	TransitGatewayArn pulumi.StringInput
   192  }
   193  
   194  func (TransitGatewayPeeringArgs) ElementType() reflect.Type {
   195  	return reflect.TypeOf((*transitGatewayPeeringArgs)(nil)).Elem()
   196  }
   197  
   198  type TransitGatewayPeeringInput interface {
   199  	pulumi.Input
   200  
   201  	ToTransitGatewayPeeringOutput() TransitGatewayPeeringOutput
   202  	ToTransitGatewayPeeringOutputWithContext(ctx context.Context) TransitGatewayPeeringOutput
   203  }
   204  
   205  func (*TransitGatewayPeering) ElementType() reflect.Type {
   206  	return reflect.TypeOf((**TransitGatewayPeering)(nil)).Elem()
   207  }
   208  
   209  func (i *TransitGatewayPeering) ToTransitGatewayPeeringOutput() TransitGatewayPeeringOutput {
   210  	return i.ToTransitGatewayPeeringOutputWithContext(context.Background())
   211  }
   212  
   213  func (i *TransitGatewayPeering) ToTransitGatewayPeeringOutputWithContext(ctx context.Context) TransitGatewayPeeringOutput {
   214  	return pulumi.ToOutputWithContext(ctx, i).(TransitGatewayPeeringOutput)
   215  }
   216  
   217  // TransitGatewayPeeringArrayInput is an input type that accepts TransitGatewayPeeringArray and TransitGatewayPeeringArrayOutput values.
   218  // You can construct a concrete instance of `TransitGatewayPeeringArrayInput` via:
   219  //
   220  //	TransitGatewayPeeringArray{ TransitGatewayPeeringArgs{...} }
   221  type TransitGatewayPeeringArrayInput interface {
   222  	pulumi.Input
   223  
   224  	ToTransitGatewayPeeringArrayOutput() TransitGatewayPeeringArrayOutput
   225  	ToTransitGatewayPeeringArrayOutputWithContext(context.Context) TransitGatewayPeeringArrayOutput
   226  }
   227  
   228  type TransitGatewayPeeringArray []TransitGatewayPeeringInput
   229  
   230  func (TransitGatewayPeeringArray) ElementType() reflect.Type {
   231  	return reflect.TypeOf((*[]*TransitGatewayPeering)(nil)).Elem()
   232  }
   233  
   234  func (i TransitGatewayPeeringArray) ToTransitGatewayPeeringArrayOutput() TransitGatewayPeeringArrayOutput {
   235  	return i.ToTransitGatewayPeeringArrayOutputWithContext(context.Background())
   236  }
   237  
   238  func (i TransitGatewayPeeringArray) ToTransitGatewayPeeringArrayOutputWithContext(ctx context.Context) TransitGatewayPeeringArrayOutput {
   239  	return pulumi.ToOutputWithContext(ctx, i).(TransitGatewayPeeringArrayOutput)
   240  }
   241  
   242  // TransitGatewayPeeringMapInput is an input type that accepts TransitGatewayPeeringMap and TransitGatewayPeeringMapOutput values.
   243  // You can construct a concrete instance of `TransitGatewayPeeringMapInput` via:
   244  //
   245  //	TransitGatewayPeeringMap{ "key": TransitGatewayPeeringArgs{...} }
   246  type TransitGatewayPeeringMapInput interface {
   247  	pulumi.Input
   248  
   249  	ToTransitGatewayPeeringMapOutput() TransitGatewayPeeringMapOutput
   250  	ToTransitGatewayPeeringMapOutputWithContext(context.Context) TransitGatewayPeeringMapOutput
   251  }
   252  
   253  type TransitGatewayPeeringMap map[string]TransitGatewayPeeringInput
   254  
   255  func (TransitGatewayPeeringMap) ElementType() reflect.Type {
   256  	return reflect.TypeOf((*map[string]*TransitGatewayPeering)(nil)).Elem()
   257  }
   258  
   259  func (i TransitGatewayPeeringMap) ToTransitGatewayPeeringMapOutput() TransitGatewayPeeringMapOutput {
   260  	return i.ToTransitGatewayPeeringMapOutputWithContext(context.Background())
   261  }
   262  
   263  func (i TransitGatewayPeeringMap) ToTransitGatewayPeeringMapOutputWithContext(ctx context.Context) TransitGatewayPeeringMapOutput {
   264  	return pulumi.ToOutputWithContext(ctx, i).(TransitGatewayPeeringMapOutput)
   265  }
   266  
   267  type TransitGatewayPeeringOutput struct{ *pulumi.OutputState }
   268  
   269  func (TransitGatewayPeeringOutput) ElementType() reflect.Type {
   270  	return reflect.TypeOf((**TransitGatewayPeering)(nil)).Elem()
   271  }
   272  
   273  func (o TransitGatewayPeeringOutput) ToTransitGatewayPeeringOutput() TransitGatewayPeeringOutput {
   274  	return o
   275  }
   276  
   277  func (o TransitGatewayPeeringOutput) ToTransitGatewayPeeringOutputWithContext(ctx context.Context) TransitGatewayPeeringOutput {
   278  	return o
   279  }
   280  
   281  // Peering Amazon Resource Name (ARN).
   282  func (o TransitGatewayPeeringOutput) Arn() pulumi.StringOutput {
   283  	return o.ApplyT(func(v *TransitGatewayPeering) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   284  }
   285  
   286  // The ARN of the core network.
   287  func (o TransitGatewayPeeringOutput) CoreNetworkArn() pulumi.StringOutput {
   288  	return o.ApplyT(func(v *TransitGatewayPeering) pulumi.StringOutput { return v.CoreNetworkArn }).(pulumi.StringOutput)
   289  }
   290  
   291  // The ID of a core network.
   292  func (o TransitGatewayPeeringOutput) CoreNetworkId() pulumi.StringOutput {
   293  	return o.ApplyT(func(v *TransitGatewayPeering) pulumi.StringOutput { return v.CoreNetworkId }).(pulumi.StringOutput)
   294  }
   295  
   296  // The edge location for the peer.
   297  func (o TransitGatewayPeeringOutput) EdgeLocation() pulumi.StringOutput {
   298  	return o.ApplyT(func(v *TransitGatewayPeering) pulumi.StringOutput { return v.EdgeLocation }).(pulumi.StringOutput)
   299  }
   300  
   301  // The ID of the account owner.
   302  func (o TransitGatewayPeeringOutput) OwnerAccountId() pulumi.StringOutput {
   303  	return o.ApplyT(func(v *TransitGatewayPeering) pulumi.StringOutput { return v.OwnerAccountId }).(pulumi.StringOutput)
   304  }
   305  
   306  // The type of peering. This will be `TRANSIT_GATEWAY`.
   307  func (o TransitGatewayPeeringOutput) PeeringType() pulumi.StringOutput {
   308  	return o.ApplyT(func(v *TransitGatewayPeering) pulumi.StringOutput { return v.PeeringType }).(pulumi.StringOutput)
   309  }
   310  
   311  // The resource ARN of the peer.
   312  func (o TransitGatewayPeeringOutput) ResourceArn() pulumi.StringOutput {
   313  	return o.ApplyT(func(v *TransitGatewayPeering) pulumi.StringOutput { return v.ResourceArn }).(pulumi.StringOutput)
   314  }
   315  
   316  // Key-value tags for the peering. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   317  func (o TransitGatewayPeeringOutput) Tags() pulumi.StringMapOutput {
   318  	return o.ApplyT(func(v *TransitGatewayPeering) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   319  }
   320  
   321  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   322  //
   323  // Deprecated: Please use `tags` instead.
   324  func (o TransitGatewayPeeringOutput) TagsAll() pulumi.StringMapOutput {
   325  	return o.ApplyT(func(v *TransitGatewayPeering) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   326  }
   327  
   328  // The ARN of the transit gateway for the peering request.
   329  func (o TransitGatewayPeeringOutput) TransitGatewayArn() pulumi.StringOutput {
   330  	return o.ApplyT(func(v *TransitGatewayPeering) pulumi.StringOutput { return v.TransitGatewayArn }).(pulumi.StringOutput)
   331  }
   332  
   333  // The ID of the transit gateway peering attachment.
   334  func (o TransitGatewayPeeringOutput) TransitGatewayPeeringAttachmentId() pulumi.StringOutput {
   335  	return o.ApplyT(func(v *TransitGatewayPeering) pulumi.StringOutput { return v.TransitGatewayPeeringAttachmentId }).(pulumi.StringOutput)
   336  }
   337  
   338  type TransitGatewayPeeringArrayOutput struct{ *pulumi.OutputState }
   339  
   340  func (TransitGatewayPeeringArrayOutput) ElementType() reflect.Type {
   341  	return reflect.TypeOf((*[]*TransitGatewayPeering)(nil)).Elem()
   342  }
   343  
   344  func (o TransitGatewayPeeringArrayOutput) ToTransitGatewayPeeringArrayOutput() TransitGatewayPeeringArrayOutput {
   345  	return o
   346  }
   347  
   348  func (o TransitGatewayPeeringArrayOutput) ToTransitGatewayPeeringArrayOutputWithContext(ctx context.Context) TransitGatewayPeeringArrayOutput {
   349  	return o
   350  }
   351  
   352  func (o TransitGatewayPeeringArrayOutput) Index(i pulumi.IntInput) TransitGatewayPeeringOutput {
   353  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *TransitGatewayPeering {
   354  		return vs[0].([]*TransitGatewayPeering)[vs[1].(int)]
   355  	}).(TransitGatewayPeeringOutput)
   356  }
   357  
   358  type TransitGatewayPeeringMapOutput struct{ *pulumi.OutputState }
   359  
   360  func (TransitGatewayPeeringMapOutput) ElementType() reflect.Type {
   361  	return reflect.TypeOf((*map[string]*TransitGatewayPeering)(nil)).Elem()
   362  }
   363  
   364  func (o TransitGatewayPeeringMapOutput) ToTransitGatewayPeeringMapOutput() TransitGatewayPeeringMapOutput {
   365  	return o
   366  }
   367  
   368  func (o TransitGatewayPeeringMapOutput) ToTransitGatewayPeeringMapOutputWithContext(ctx context.Context) TransitGatewayPeeringMapOutput {
   369  	return o
   370  }
   371  
   372  func (o TransitGatewayPeeringMapOutput) MapIndex(k pulumi.StringInput) TransitGatewayPeeringOutput {
   373  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *TransitGatewayPeering {
   374  		return vs[0].(map[string]*TransitGatewayPeering)[vs[1].(string)]
   375  	}).(TransitGatewayPeeringOutput)
   376  }
   377  
   378  func init() {
   379  	pulumi.RegisterInputType(reflect.TypeOf((*TransitGatewayPeeringInput)(nil)).Elem(), &TransitGatewayPeering{})
   380  	pulumi.RegisterInputType(reflect.TypeOf((*TransitGatewayPeeringArrayInput)(nil)).Elem(), TransitGatewayPeeringArray{})
   381  	pulumi.RegisterInputType(reflect.TypeOf((*TransitGatewayPeeringMapInput)(nil)).Elem(), TransitGatewayPeeringMap{})
   382  	pulumi.RegisterOutputType(TransitGatewayPeeringOutput{})
   383  	pulumi.RegisterOutputType(TransitGatewayPeeringArrayOutput{})
   384  	pulumi.RegisterOutputType(TransitGatewayPeeringMapOutput{})
   385  }