github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/vpnConnectionRoute.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 // Provides a static route between a VPN connection and a customer 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/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 // vpc, err := ec2.NewVpc(ctx, "vpc", &ec2.VpcArgs{ 33 // CidrBlock: pulumi.String("10.0.0.0/16"), 34 // }) 35 // if err != nil { 36 // return err 37 // } 38 // vpnGateway, err := ec2.NewVpnGateway(ctx, "vpn_gateway", &ec2.VpnGatewayArgs{ 39 // VpcId: vpc.ID(), 40 // }) 41 // if err != nil { 42 // return err 43 // } 44 // customerGateway, err := ec2.NewCustomerGateway(ctx, "customer_gateway", &ec2.CustomerGatewayArgs{ 45 // BgpAsn: pulumi.String("65000"), 46 // IpAddress: pulumi.String("172.0.0.1"), 47 // Type: pulumi.String("ipsec.1"), 48 // }) 49 // if err != nil { 50 // return err 51 // } 52 // main, err := ec2.NewVpnConnection(ctx, "main", &ec2.VpnConnectionArgs{ 53 // VpnGatewayId: vpnGateway.ID(), 54 // CustomerGatewayId: customerGateway.ID(), 55 // Type: pulumi.String("ipsec.1"), 56 // StaticRoutesOnly: pulumi.Bool(true), 57 // }) 58 // if err != nil { 59 // return err 60 // } 61 // _, err = ec2.NewVpnConnectionRoute(ctx, "office", &ec2.VpnConnectionRouteArgs{ 62 // DestinationCidrBlock: pulumi.String("192.168.10.0/24"), 63 // VpnConnectionId: main.ID(), 64 // }) 65 // if err != nil { 66 // return err 67 // } 68 // return nil 69 // }) 70 // } 71 // 72 // ``` 73 // <!--End PulumiCodeChooser --> 74 type VpnConnectionRoute struct { 75 pulumi.CustomResourceState 76 77 // The CIDR block associated with the local subnet of the customer network. 78 DestinationCidrBlock pulumi.StringOutput `pulumi:"destinationCidrBlock"` 79 // The ID of the VPN connection. 80 VpnConnectionId pulumi.StringOutput `pulumi:"vpnConnectionId"` 81 } 82 83 // NewVpnConnectionRoute registers a new resource with the given unique name, arguments, and options. 84 func NewVpnConnectionRoute(ctx *pulumi.Context, 85 name string, args *VpnConnectionRouteArgs, opts ...pulumi.ResourceOption) (*VpnConnectionRoute, error) { 86 if args == nil { 87 return nil, errors.New("missing one or more required arguments") 88 } 89 90 if args.DestinationCidrBlock == nil { 91 return nil, errors.New("invalid value for required argument 'DestinationCidrBlock'") 92 } 93 if args.VpnConnectionId == nil { 94 return nil, errors.New("invalid value for required argument 'VpnConnectionId'") 95 } 96 opts = internal.PkgResourceDefaultOpts(opts) 97 var resource VpnConnectionRoute 98 err := ctx.RegisterResource("aws:ec2/vpnConnectionRoute:VpnConnectionRoute", name, args, &resource, opts...) 99 if err != nil { 100 return nil, err 101 } 102 return &resource, nil 103 } 104 105 // GetVpnConnectionRoute gets an existing VpnConnectionRoute resource's state with the given name, ID, and optional 106 // state properties that are used to uniquely qualify the lookup (nil if not required). 107 func GetVpnConnectionRoute(ctx *pulumi.Context, 108 name string, id pulumi.IDInput, state *VpnConnectionRouteState, opts ...pulumi.ResourceOption) (*VpnConnectionRoute, error) { 109 var resource VpnConnectionRoute 110 err := ctx.ReadResource("aws:ec2/vpnConnectionRoute:VpnConnectionRoute", name, id, state, &resource, opts...) 111 if err != nil { 112 return nil, err 113 } 114 return &resource, nil 115 } 116 117 // Input properties used for looking up and filtering VpnConnectionRoute resources. 118 type vpnConnectionRouteState struct { 119 // The CIDR block associated with the local subnet of the customer network. 120 DestinationCidrBlock *string `pulumi:"destinationCidrBlock"` 121 // The ID of the VPN connection. 122 VpnConnectionId *string `pulumi:"vpnConnectionId"` 123 } 124 125 type VpnConnectionRouteState struct { 126 // The CIDR block associated with the local subnet of the customer network. 127 DestinationCidrBlock pulumi.StringPtrInput 128 // The ID of the VPN connection. 129 VpnConnectionId pulumi.StringPtrInput 130 } 131 132 func (VpnConnectionRouteState) ElementType() reflect.Type { 133 return reflect.TypeOf((*vpnConnectionRouteState)(nil)).Elem() 134 } 135 136 type vpnConnectionRouteArgs struct { 137 // The CIDR block associated with the local subnet of the customer network. 138 DestinationCidrBlock string `pulumi:"destinationCidrBlock"` 139 // The ID of the VPN connection. 140 VpnConnectionId string `pulumi:"vpnConnectionId"` 141 } 142 143 // The set of arguments for constructing a VpnConnectionRoute resource. 144 type VpnConnectionRouteArgs struct { 145 // The CIDR block associated with the local subnet of the customer network. 146 DestinationCidrBlock pulumi.StringInput 147 // The ID of the VPN connection. 148 VpnConnectionId pulumi.StringInput 149 } 150 151 func (VpnConnectionRouteArgs) ElementType() reflect.Type { 152 return reflect.TypeOf((*vpnConnectionRouteArgs)(nil)).Elem() 153 } 154 155 type VpnConnectionRouteInput interface { 156 pulumi.Input 157 158 ToVpnConnectionRouteOutput() VpnConnectionRouteOutput 159 ToVpnConnectionRouteOutputWithContext(ctx context.Context) VpnConnectionRouteOutput 160 } 161 162 func (*VpnConnectionRoute) ElementType() reflect.Type { 163 return reflect.TypeOf((**VpnConnectionRoute)(nil)).Elem() 164 } 165 166 func (i *VpnConnectionRoute) ToVpnConnectionRouteOutput() VpnConnectionRouteOutput { 167 return i.ToVpnConnectionRouteOutputWithContext(context.Background()) 168 } 169 170 func (i *VpnConnectionRoute) ToVpnConnectionRouteOutputWithContext(ctx context.Context) VpnConnectionRouteOutput { 171 return pulumi.ToOutputWithContext(ctx, i).(VpnConnectionRouteOutput) 172 } 173 174 // VpnConnectionRouteArrayInput is an input type that accepts VpnConnectionRouteArray and VpnConnectionRouteArrayOutput values. 175 // You can construct a concrete instance of `VpnConnectionRouteArrayInput` via: 176 // 177 // VpnConnectionRouteArray{ VpnConnectionRouteArgs{...} } 178 type VpnConnectionRouteArrayInput interface { 179 pulumi.Input 180 181 ToVpnConnectionRouteArrayOutput() VpnConnectionRouteArrayOutput 182 ToVpnConnectionRouteArrayOutputWithContext(context.Context) VpnConnectionRouteArrayOutput 183 } 184 185 type VpnConnectionRouteArray []VpnConnectionRouteInput 186 187 func (VpnConnectionRouteArray) ElementType() reflect.Type { 188 return reflect.TypeOf((*[]*VpnConnectionRoute)(nil)).Elem() 189 } 190 191 func (i VpnConnectionRouteArray) ToVpnConnectionRouteArrayOutput() VpnConnectionRouteArrayOutput { 192 return i.ToVpnConnectionRouteArrayOutputWithContext(context.Background()) 193 } 194 195 func (i VpnConnectionRouteArray) ToVpnConnectionRouteArrayOutputWithContext(ctx context.Context) VpnConnectionRouteArrayOutput { 196 return pulumi.ToOutputWithContext(ctx, i).(VpnConnectionRouteArrayOutput) 197 } 198 199 // VpnConnectionRouteMapInput is an input type that accepts VpnConnectionRouteMap and VpnConnectionRouteMapOutput values. 200 // You can construct a concrete instance of `VpnConnectionRouteMapInput` via: 201 // 202 // VpnConnectionRouteMap{ "key": VpnConnectionRouteArgs{...} } 203 type VpnConnectionRouteMapInput interface { 204 pulumi.Input 205 206 ToVpnConnectionRouteMapOutput() VpnConnectionRouteMapOutput 207 ToVpnConnectionRouteMapOutputWithContext(context.Context) VpnConnectionRouteMapOutput 208 } 209 210 type VpnConnectionRouteMap map[string]VpnConnectionRouteInput 211 212 func (VpnConnectionRouteMap) ElementType() reflect.Type { 213 return reflect.TypeOf((*map[string]*VpnConnectionRoute)(nil)).Elem() 214 } 215 216 func (i VpnConnectionRouteMap) ToVpnConnectionRouteMapOutput() VpnConnectionRouteMapOutput { 217 return i.ToVpnConnectionRouteMapOutputWithContext(context.Background()) 218 } 219 220 func (i VpnConnectionRouteMap) ToVpnConnectionRouteMapOutputWithContext(ctx context.Context) VpnConnectionRouteMapOutput { 221 return pulumi.ToOutputWithContext(ctx, i).(VpnConnectionRouteMapOutput) 222 } 223 224 type VpnConnectionRouteOutput struct{ *pulumi.OutputState } 225 226 func (VpnConnectionRouteOutput) ElementType() reflect.Type { 227 return reflect.TypeOf((**VpnConnectionRoute)(nil)).Elem() 228 } 229 230 func (o VpnConnectionRouteOutput) ToVpnConnectionRouteOutput() VpnConnectionRouteOutput { 231 return o 232 } 233 234 func (o VpnConnectionRouteOutput) ToVpnConnectionRouteOutputWithContext(ctx context.Context) VpnConnectionRouteOutput { 235 return o 236 } 237 238 // The CIDR block associated with the local subnet of the customer network. 239 func (o VpnConnectionRouteOutput) DestinationCidrBlock() pulumi.StringOutput { 240 return o.ApplyT(func(v *VpnConnectionRoute) pulumi.StringOutput { return v.DestinationCidrBlock }).(pulumi.StringOutput) 241 } 242 243 // The ID of the VPN connection. 244 func (o VpnConnectionRouteOutput) VpnConnectionId() pulumi.StringOutput { 245 return o.ApplyT(func(v *VpnConnectionRoute) pulumi.StringOutput { return v.VpnConnectionId }).(pulumi.StringOutput) 246 } 247 248 type VpnConnectionRouteArrayOutput struct{ *pulumi.OutputState } 249 250 func (VpnConnectionRouteArrayOutput) ElementType() reflect.Type { 251 return reflect.TypeOf((*[]*VpnConnectionRoute)(nil)).Elem() 252 } 253 254 func (o VpnConnectionRouteArrayOutput) ToVpnConnectionRouteArrayOutput() VpnConnectionRouteArrayOutput { 255 return o 256 } 257 258 func (o VpnConnectionRouteArrayOutput) ToVpnConnectionRouteArrayOutputWithContext(ctx context.Context) VpnConnectionRouteArrayOutput { 259 return o 260 } 261 262 func (o VpnConnectionRouteArrayOutput) Index(i pulumi.IntInput) VpnConnectionRouteOutput { 263 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VpnConnectionRoute { 264 return vs[0].([]*VpnConnectionRoute)[vs[1].(int)] 265 }).(VpnConnectionRouteOutput) 266 } 267 268 type VpnConnectionRouteMapOutput struct{ *pulumi.OutputState } 269 270 func (VpnConnectionRouteMapOutput) ElementType() reflect.Type { 271 return reflect.TypeOf((*map[string]*VpnConnectionRoute)(nil)).Elem() 272 } 273 274 func (o VpnConnectionRouteMapOutput) ToVpnConnectionRouteMapOutput() VpnConnectionRouteMapOutput { 275 return o 276 } 277 278 func (o VpnConnectionRouteMapOutput) ToVpnConnectionRouteMapOutputWithContext(ctx context.Context) VpnConnectionRouteMapOutput { 279 return o 280 } 281 282 func (o VpnConnectionRouteMapOutput) MapIndex(k pulumi.StringInput) VpnConnectionRouteOutput { 283 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VpnConnectionRoute { 284 return vs[0].(map[string]*VpnConnectionRoute)[vs[1].(string)] 285 }).(VpnConnectionRouteOutput) 286 } 287 288 func init() { 289 pulumi.RegisterInputType(reflect.TypeOf((*VpnConnectionRouteInput)(nil)).Elem(), &VpnConnectionRoute{}) 290 pulumi.RegisterInputType(reflect.TypeOf((*VpnConnectionRouteArrayInput)(nil)).Elem(), VpnConnectionRouteArray{}) 291 pulumi.RegisterInputType(reflect.TypeOf((*VpnConnectionRouteMapInput)(nil)).Elem(), VpnConnectionRouteMap{}) 292 pulumi.RegisterOutputType(VpnConnectionRouteOutput{}) 293 pulumi.RegisterOutputType(VpnConnectionRouteArrayOutput{}) 294 pulumi.RegisterOutputType(VpnConnectionRouteMapOutput{}) 295 }