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 }