github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/localGatewayRoute.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 ec2 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 // Manages an EC2 Local Gateway Route. More information can be found in the [Outposts User Guide](https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#routing). 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/ec2" 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 := ec2.NewLocalGatewayRoute(ctx, "example", &ec2.LocalGatewayRouteArgs{ 33 // DestinationCidrBlock: pulumi.String("172.16.0.0/16"), 34 // LocalGatewayRouteTableId: pulumi.Any(exampleAwsEc2LocalGatewayRouteTable.Id), 35 // LocalGatewayVirtualInterfaceGroupId: pulumi.Any(exampleAwsEc2LocalGatewayVirtualInterfaceGroup.Id), 36 // }) 37 // if err != nil { 38 // return err 39 // } 40 // return nil 41 // }) 42 // } 43 // 44 // ``` 45 // <!--End PulumiCodeChooser --> 46 // 47 // ## Import 48 // 49 // Using `pulumi import`, import `aws_ec2_local_gateway_route` using the EC2 Local Gateway Route Table identifier and destination CIDR block separated by underscores (`_`). For example: 50 // 51 // ```sh 52 // $ pulumi import aws:ec2/localGatewayRoute:LocalGatewayRoute example lgw-rtb-12345678_172.16.0.0/16 53 // ``` 54 type LocalGatewayRoute struct { 55 pulumi.CustomResourceState 56 57 // IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. 58 DestinationCidrBlock pulumi.StringOutput `pulumi:"destinationCidrBlock"` 59 // Identifier of EC2 Local Gateway Route Table. 60 LocalGatewayRouteTableId pulumi.StringOutput `pulumi:"localGatewayRouteTableId"` 61 // Identifier of EC2 Local Gateway Virtual Interface Group. 62 LocalGatewayVirtualInterfaceGroupId pulumi.StringOutput `pulumi:"localGatewayVirtualInterfaceGroupId"` 63 } 64 65 // NewLocalGatewayRoute registers a new resource with the given unique name, arguments, and options. 66 func NewLocalGatewayRoute(ctx *pulumi.Context, 67 name string, args *LocalGatewayRouteArgs, opts ...pulumi.ResourceOption) (*LocalGatewayRoute, error) { 68 if args == nil { 69 return nil, errors.New("missing one or more required arguments") 70 } 71 72 if args.DestinationCidrBlock == nil { 73 return nil, errors.New("invalid value for required argument 'DestinationCidrBlock'") 74 } 75 if args.LocalGatewayRouteTableId == nil { 76 return nil, errors.New("invalid value for required argument 'LocalGatewayRouteTableId'") 77 } 78 if args.LocalGatewayVirtualInterfaceGroupId == nil { 79 return nil, errors.New("invalid value for required argument 'LocalGatewayVirtualInterfaceGroupId'") 80 } 81 opts = internal.PkgResourceDefaultOpts(opts) 82 var resource LocalGatewayRoute 83 err := ctx.RegisterResource("aws:ec2/localGatewayRoute:LocalGatewayRoute", name, args, &resource, opts...) 84 if err != nil { 85 return nil, err 86 } 87 return &resource, nil 88 } 89 90 // GetLocalGatewayRoute gets an existing LocalGatewayRoute 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 GetLocalGatewayRoute(ctx *pulumi.Context, 93 name string, id pulumi.IDInput, state *LocalGatewayRouteState, opts ...pulumi.ResourceOption) (*LocalGatewayRoute, error) { 94 var resource LocalGatewayRoute 95 err := ctx.ReadResource("aws:ec2/localGatewayRoute:LocalGatewayRoute", 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 LocalGatewayRoute resources. 103 type localGatewayRouteState struct { 104 // IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. 105 DestinationCidrBlock *string `pulumi:"destinationCidrBlock"` 106 // Identifier of EC2 Local Gateway Route Table. 107 LocalGatewayRouteTableId *string `pulumi:"localGatewayRouteTableId"` 108 // Identifier of EC2 Local Gateway Virtual Interface Group. 109 LocalGatewayVirtualInterfaceGroupId *string `pulumi:"localGatewayVirtualInterfaceGroupId"` 110 } 111 112 type LocalGatewayRouteState struct { 113 // IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. 114 DestinationCidrBlock pulumi.StringPtrInput 115 // Identifier of EC2 Local Gateway Route Table. 116 LocalGatewayRouteTableId pulumi.StringPtrInput 117 // Identifier of EC2 Local Gateway Virtual Interface Group. 118 LocalGatewayVirtualInterfaceGroupId pulumi.StringPtrInput 119 } 120 121 func (LocalGatewayRouteState) ElementType() reflect.Type { 122 return reflect.TypeOf((*localGatewayRouteState)(nil)).Elem() 123 } 124 125 type localGatewayRouteArgs struct { 126 // IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. 127 DestinationCidrBlock string `pulumi:"destinationCidrBlock"` 128 // Identifier of EC2 Local Gateway Route Table. 129 LocalGatewayRouteTableId string `pulumi:"localGatewayRouteTableId"` 130 // Identifier of EC2 Local Gateway Virtual Interface Group. 131 LocalGatewayVirtualInterfaceGroupId string `pulumi:"localGatewayVirtualInterfaceGroupId"` 132 } 133 134 // The set of arguments for constructing a LocalGatewayRoute resource. 135 type LocalGatewayRouteArgs struct { 136 // IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. 137 DestinationCidrBlock pulumi.StringInput 138 // Identifier of EC2 Local Gateway Route Table. 139 LocalGatewayRouteTableId pulumi.StringInput 140 // Identifier of EC2 Local Gateway Virtual Interface Group. 141 LocalGatewayVirtualInterfaceGroupId pulumi.StringInput 142 } 143 144 func (LocalGatewayRouteArgs) ElementType() reflect.Type { 145 return reflect.TypeOf((*localGatewayRouteArgs)(nil)).Elem() 146 } 147 148 type LocalGatewayRouteInput interface { 149 pulumi.Input 150 151 ToLocalGatewayRouteOutput() LocalGatewayRouteOutput 152 ToLocalGatewayRouteOutputWithContext(ctx context.Context) LocalGatewayRouteOutput 153 } 154 155 func (*LocalGatewayRoute) ElementType() reflect.Type { 156 return reflect.TypeOf((**LocalGatewayRoute)(nil)).Elem() 157 } 158 159 func (i *LocalGatewayRoute) ToLocalGatewayRouteOutput() LocalGatewayRouteOutput { 160 return i.ToLocalGatewayRouteOutputWithContext(context.Background()) 161 } 162 163 func (i *LocalGatewayRoute) ToLocalGatewayRouteOutputWithContext(ctx context.Context) LocalGatewayRouteOutput { 164 return pulumi.ToOutputWithContext(ctx, i).(LocalGatewayRouteOutput) 165 } 166 167 // LocalGatewayRouteArrayInput is an input type that accepts LocalGatewayRouteArray and LocalGatewayRouteArrayOutput values. 168 // You can construct a concrete instance of `LocalGatewayRouteArrayInput` via: 169 // 170 // LocalGatewayRouteArray{ LocalGatewayRouteArgs{...} } 171 type LocalGatewayRouteArrayInput interface { 172 pulumi.Input 173 174 ToLocalGatewayRouteArrayOutput() LocalGatewayRouteArrayOutput 175 ToLocalGatewayRouteArrayOutputWithContext(context.Context) LocalGatewayRouteArrayOutput 176 } 177 178 type LocalGatewayRouteArray []LocalGatewayRouteInput 179 180 func (LocalGatewayRouteArray) ElementType() reflect.Type { 181 return reflect.TypeOf((*[]*LocalGatewayRoute)(nil)).Elem() 182 } 183 184 func (i LocalGatewayRouteArray) ToLocalGatewayRouteArrayOutput() LocalGatewayRouteArrayOutput { 185 return i.ToLocalGatewayRouteArrayOutputWithContext(context.Background()) 186 } 187 188 func (i LocalGatewayRouteArray) ToLocalGatewayRouteArrayOutputWithContext(ctx context.Context) LocalGatewayRouteArrayOutput { 189 return pulumi.ToOutputWithContext(ctx, i).(LocalGatewayRouteArrayOutput) 190 } 191 192 // LocalGatewayRouteMapInput is an input type that accepts LocalGatewayRouteMap and LocalGatewayRouteMapOutput values. 193 // You can construct a concrete instance of `LocalGatewayRouteMapInput` via: 194 // 195 // LocalGatewayRouteMap{ "key": LocalGatewayRouteArgs{...} } 196 type LocalGatewayRouteMapInput interface { 197 pulumi.Input 198 199 ToLocalGatewayRouteMapOutput() LocalGatewayRouteMapOutput 200 ToLocalGatewayRouteMapOutputWithContext(context.Context) LocalGatewayRouteMapOutput 201 } 202 203 type LocalGatewayRouteMap map[string]LocalGatewayRouteInput 204 205 func (LocalGatewayRouteMap) ElementType() reflect.Type { 206 return reflect.TypeOf((*map[string]*LocalGatewayRoute)(nil)).Elem() 207 } 208 209 func (i LocalGatewayRouteMap) ToLocalGatewayRouteMapOutput() LocalGatewayRouteMapOutput { 210 return i.ToLocalGatewayRouteMapOutputWithContext(context.Background()) 211 } 212 213 func (i LocalGatewayRouteMap) ToLocalGatewayRouteMapOutputWithContext(ctx context.Context) LocalGatewayRouteMapOutput { 214 return pulumi.ToOutputWithContext(ctx, i).(LocalGatewayRouteMapOutput) 215 } 216 217 type LocalGatewayRouteOutput struct{ *pulumi.OutputState } 218 219 func (LocalGatewayRouteOutput) ElementType() reflect.Type { 220 return reflect.TypeOf((**LocalGatewayRoute)(nil)).Elem() 221 } 222 223 func (o LocalGatewayRouteOutput) ToLocalGatewayRouteOutput() LocalGatewayRouteOutput { 224 return o 225 } 226 227 func (o LocalGatewayRouteOutput) ToLocalGatewayRouteOutputWithContext(ctx context.Context) LocalGatewayRouteOutput { 228 return o 229 } 230 231 // IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. 232 func (o LocalGatewayRouteOutput) DestinationCidrBlock() pulumi.StringOutput { 233 return o.ApplyT(func(v *LocalGatewayRoute) pulumi.StringOutput { return v.DestinationCidrBlock }).(pulumi.StringOutput) 234 } 235 236 // Identifier of EC2 Local Gateway Route Table. 237 func (o LocalGatewayRouteOutput) LocalGatewayRouteTableId() pulumi.StringOutput { 238 return o.ApplyT(func(v *LocalGatewayRoute) pulumi.StringOutput { return v.LocalGatewayRouteTableId }).(pulumi.StringOutput) 239 } 240 241 // Identifier of EC2 Local Gateway Virtual Interface Group. 242 func (o LocalGatewayRouteOutput) LocalGatewayVirtualInterfaceGroupId() pulumi.StringOutput { 243 return o.ApplyT(func(v *LocalGatewayRoute) pulumi.StringOutput { return v.LocalGatewayVirtualInterfaceGroupId }).(pulumi.StringOutput) 244 } 245 246 type LocalGatewayRouteArrayOutput struct{ *pulumi.OutputState } 247 248 func (LocalGatewayRouteArrayOutput) ElementType() reflect.Type { 249 return reflect.TypeOf((*[]*LocalGatewayRoute)(nil)).Elem() 250 } 251 252 func (o LocalGatewayRouteArrayOutput) ToLocalGatewayRouteArrayOutput() LocalGatewayRouteArrayOutput { 253 return o 254 } 255 256 func (o LocalGatewayRouteArrayOutput) ToLocalGatewayRouteArrayOutputWithContext(ctx context.Context) LocalGatewayRouteArrayOutput { 257 return o 258 } 259 260 func (o LocalGatewayRouteArrayOutput) Index(i pulumi.IntInput) LocalGatewayRouteOutput { 261 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LocalGatewayRoute { 262 return vs[0].([]*LocalGatewayRoute)[vs[1].(int)] 263 }).(LocalGatewayRouteOutput) 264 } 265 266 type LocalGatewayRouteMapOutput struct{ *pulumi.OutputState } 267 268 func (LocalGatewayRouteMapOutput) ElementType() reflect.Type { 269 return reflect.TypeOf((*map[string]*LocalGatewayRoute)(nil)).Elem() 270 } 271 272 func (o LocalGatewayRouteMapOutput) ToLocalGatewayRouteMapOutput() LocalGatewayRouteMapOutput { 273 return o 274 } 275 276 func (o LocalGatewayRouteMapOutput) ToLocalGatewayRouteMapOutputWithContext(ctx context.Context) LocalGatewayRouteMapOutput { 277 return o 278 } 279 280 func (o LocalGatewayRouteMapOutput) MapIndex(k pulumi.StringInput) LocalGatewayRouteOutput { 281 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LocalGatewayRoute { 282 return vs[0].(map[string]*LocalGatewayRoute)[vs[1].(string)] 283 }).(LocalGatewayRouteOutput) 284 } 285 286 func init() { 287 pulumi.RegisterInputType(reflect.TypeOf((*LocalGatewayRouteInput)(nil)).Elem(), &LocalGatewayRoute{}) 288 pulumi.RegisterInputType(reflect.TypeOf((*LocalGatewayRouteArrayInput)(nil)).Elem(), LocalGatewayRouteArray{}) 289 pulumi.RegisterInputType(reflect.TypeOf((*LocalGatewayRouteMapInput)(nil)).Elem(), LocalGatewayRouteMap{}) 290 pulumi.RegisterOutputType(LocalGatewayRouteOutput{}) 291 pulumi.RegisterOutputType(LocalGatewayRouteArrayOutput{}) 292 pulumi.RegisterOutputType(LocalGatewayRouteMapOutput{}) 293 }