github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/route53/resolverEndpoint.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 Route 53 Resolver endpoint 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.NewResolverEndpoint(ctx, "foo", &route53.ResolverEndpointArgs{ 33 // Name: pulumi.String("foo"), 34 // Direction: pulumi.String("INBOUND"), 35 // SecurityGroupIds: pulumi.StringArray{ 36 // sg1.Id, 37 // sg2.Id, 38 // }, 39 // IpAddresses: route53.ResolverEndpointIpAddressArray{ 40 // &route53.ResolverEndpointIpAddressArgs{ 41 // SubnetId: pulumi.Any(sn1.Id), 42 // }, 43 // &route53.ResolverEndpointIpAddressArgs{ 44 // SubnetId: pulumi.Any(sn2.Id), 45 // Ip: pulumi.String("10.0.64.4"), 46 // }, 47 // }, 48 // Protocols: pulumi.StringArray{ 49 // pulumi.String("Do53"), 50 // pulumi.String("DoH"), 51 // }, 52 // Tags: pulumi.StringMap{ 53 // "Environment": pulumi.String("Prod"), 54 // }, 55 // }) 56 // if err != nil { 57 // return err 58 // } 59 // return nil 60 // }) 61 // } 62 // 63 // ``` 64 // <!--End PulumiCodeChooser --> 65 // 66 // ## Import 67 // 68 // Using `pulumi import`, import Route 53 Resolver endpoints using the Route 53 Resolver endpoint ID. For example: 69 // 70 // ```sh 71 // $ pulumi import aws:route53/resolverEndpoint:ResolverEndpoint foo rslvr-in-abcdef01234567890 72 // ``` 73 type ResolverEndpoint struct { 74 pulumi.CustomResourceState 75 76 // The ARN of the Route 53 Resolver endpoint. 77 Arn pulumi.StringOutput `pulumi:"arn"` 78 // The direction of DNS queries to or from the Route 53 Resolver endpoint. 79 // Valid values are `INBOUND` (resolver forwards DNS queries to the DNS service for a VPC from your network or another VPC) 80 // or `OUTBOUND` (resolver forwards DNS queries from the DNS service for a VPC to your network or another VPC). 81 Direction pulumi.StringOutput `pulumi:"direction"` 82 // The ID of the VPC that you want to create the resolver endpoint in. 83 HostVpcId pulumi.StringOutput `pulumi:"hostVpcId"` 84 // The subnets and IP addresses in your VPC that you want DNS queries to pass through on the way from your VPCs 85 // to your network (for outbound endpoints) or on the way from your network to your VPCs (for inbound endpoints). Described below. 86 IpAddresses ResolverEndpointIpAddressArrayOutput `pulumi:"ipAddresses"` 87 // The friendly name of the Route 53 Resolver endpoint. 88 Name pulumi.StringOutput `pulumi:"name"` 89 // The protocols you want to use for the Route 53 Resolver endpoint. Valid values: `DoH`, `Do53`, `DoH-FIPS`. 90 Protocols pulumi.StringArrayOutput `pulumi:"protocols"` 91 // The Route 53 Resolver endpoint IP address type. Valid values: `IPV4`, `IPV6`, `DUALSTACK`. 92 ResolverEndpointType pulumi.StringOutput `pulumi:"resolverEndpointType"` 93 // The ID of one or more security groups that you want to use to control access to this VPC. 94 SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"` 95 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 96 Tags pulumi.StringMapOutput `pulumi:"tags"` 97 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 98 // 99 // Deprecated: Please use `tags` instead. 100 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 101 } 102 103 // NewResolverEndpoint registers a new resource with the given unique name, arguments, and options. 104 func NewResolverEndpoint(ctx *pulumi.Context, 105 name string, args *ResolverEndpointArgs, opts ...pulumi.ResourceOption) (*ResolverEndpoint, error) { 106 if args == nil { 107 return nil, errors.New("missing one or more required arguments") 108 } 109 110 if args.Direction == nil { 111 return nil, errors.New("invalid value for required argument 'Direction'") 112 } 113 if args.IpAddresses == nil { 114 return nil, errors.New("invalid value for required argument 'IpAddresses'") 115 } 116 if args.SecurityGroupIds == nil { 117 return nil, errors.New("invalid value for required argument 'SecurityGroupIds'") 118 } 119 opts = internal.PkgResourceDefaultOpts(opts) 120 var resource ResolverEndpoint 121 err := ctx.RegisterResource("aws:route53/resolverEndpoint:ResolverEndpoint", name, args, &resource, opts...) 122 if err != nil { 123 return nil, err 124 } 125 return &resource, nil 126 } 127 128 // GetResolverEndpoint gets an existing ResolverEndpoint resource's state with the given name, ID, and optional 129 // state properties that are used to uniquely qualify the lookup (nil if not required). 130 func GetResolverEndpoint(ctx *pulumi.Context, 131 name string, id pulumi.IDInput, state *ResolverEndpointState, opts ...pulumi.ResourceOption) (*ResolverEndpoint, error) { 132 var resource ResolverEndpoint 133 err := ctx.ReadResource("aws:route53/resolverEndpoint:ResolverEndpoint", name, id, state, &resource, opts...) 134 if err != nil { 135 return nil, err 136 } 137 return &resource, nil 138 } 139 140 // Input properties used for looking up and filtering ResolverEndpoint resources. 141 type resolverEndpointState struct { 142 // The ARN of the Route 53 Resolver endpoint. 143 Arn *string `pulumi:"arn"` 144 // The direction of DNS queries to or from the Route 53 Resolver endpoint. 145 // Valid values are `INBOUND` (resolver forwards DNS queries to the DNS service for a VPC from your network or another VPC) 146 // or `OUTBOUND` (resolver forwards DNS queries from the DNS service for a VPC to your network or another VPC). 147 Direction *string `pulumi:"direction"` 148 // The ID of the VPC that you want to create the resolver endpoint in. 149 HostVpcId *string `pulumi:"hostVpcId"` 150 // The subnets and IP addresses in your VPC that you want DNS queries to pass through on the way from your VPCs 151 // to your network (for outbound endpoints) or on the way from your network to your VPCs (for inbound endpoints). Described below. 152 IpAddresses []ResolverEndpointIpAddress `pulumi:"ipAddresses"` 153 // The friendly name of the Route 53 Resolver endpoint. 154 Name *string `pulumi:"name"` 155 // The protocols you want to use for the Route 53 Resolver endpoint. Valid values: `DoH`, `Do53`, `DoH-FIPS`. 156 Protocols []string `pulumi:"protocols"` 157 // The Route 53 Resolver endpoint IP address type. Valid values: `IPV4`, `IPV6`, `DUALSTACK`. 158 ResolverEndpointType *string `pulumi:"resolverEndpointType"` 159 // The ID of one or more security groups that you want to use to control access to this VPC. 160 SecurityGroupIds []string `pulumi:"securityGroupIds"` 161 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 162 Tags map[string]string `pulumi:"tags"` 163 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 164 // 165 // Deprecated: Please use `tags` instead. 166 TagsAll map[string]string `pulumi:"tagsAll"` 167 } 168 169 type ResolverEndpointState struct { 170 // The ARN of the Route 53 Resolver endpoint. 171 Arn pulumi.StringPtrInput 172 // The direction of DNS queries to or from the Route 53 Resolver endpoint. 173 // Valid values are `INBOUND` (resolver forwards DNS queries to the DNS service for a VPC from your network or another VPC) 174 // or `OUTBOUND` (resolver forwards DNS queries from the DNS service for a VPC to your network or another VPC). 175 Direction pulumi.StringPtrInput 176 // The ID of the VPC that you want to create the resolver endpoint in. 177 HostVpcId pulumi.StringPtrInput 178 // The subnets and IP addresses in your VPC that you want DNS queries to pass through on the way from your VPCs 179 // to your network (for outbound endpoints) or on the way from your network to your VPCs (for inbound endpoints). Described below. 180 IpAddresses ResolverEndpointIpAddressArrayInput 181 // The friendly name of the Route 53 Resolver endpoint. 182 Name pulumi.StringPtrInput 183 // The protocols you want to use for the Route 53 Resolver endpoint. Valid values: `DoH`, `Do53`, `DoH-FIPS`. 184 Protocols pulumi.StringArrayInput 185 // The Route 53 Resolver endpoint IP address type. Valid values: `IPV4`, `IPV6`, `DUALSTACK`. 186 ResolverEndpointType pulumi.StringPtrInput 187 // The ID of one or more security groups that you want to use to control access to this VPC. 188 SecurityGroupIds pulumi.StringArrayInput 189 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 190 Tags pulumi.StringMapInput 191 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 192 // 193 // Deprecated: Please use `tags` instead. 194 TagsAll pulumi.StringMapInput 195 } 196 197 func (ResolverEndpointState) ElementType() reflect.Type { 198 return reflect.TypeOf((*resolverEndpointState)(nil)).Elem() 199 } 200 201 type resolverEndpointArgs struct { 202 // The direction of DNS queries to or from the Route 53 Resolver endpoint. 203 // Valid values are `INBOUND` (resolver forwards DNS queries to the DNS service for a VPC from your network or another VPC) 204 // or `OUTBOUND` (resolver forwards DNS queries from the DNS service for a VPC to your network or another VPC). 205 Direction string `pulumi:"direction"` 206 // The subnets and IP addresses in your VPC that you want DNS queries to pass through on the way from your VPCs 207 // to your network (for outbound endpoints) or on the way from your network to your VPCs (for inbound endpoints). Described below. 208 IpAddresses []ResolverEndpointIpAddress `pulumi:"ipAddresses"` 209 // The friendly name of the Route 53 Resolver endpoint. 210 Name *string `pulumi:"name"` 211 // The protocols you want to use for the Route 53 Resolver endpoint. Valid values: `DoH`, `Do53`, `DoH-FIPS`. 212 Protocols []string `pulumi:"protocols"` 213 // The Route 53 Resolver endpoint IP address type. Valid values: `IPV4`, `IPV6`, `DUALSTACK`. 214 ResolverEndpointType *string `pulumi:"resolverEndpointType"` 215 // The ID of one or more security groups that you want to use to control access to this VPC. 216 SecurityGroupIds []string `pulumi:"securityGroupIds"` 217 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 218 Tags map[string]string `pulumi:"tags"` 219 } 220 221 // The set of arguments for constructing a ResolverEndpoint resource. 222 type ResolverEndpointArgs struct { 223 // The direction of DNS queries to or from the Route 53 Resolver endpoint. 224 // Valid values are `INBOUND` (resolver forwards DNS queries to the DNS service for a VPC from your network or another VPC) 225 // or `OUTBOUND` (resolver forwards DNS queries from the DNS service for a VPC to your network or another VPC). 226 Direction pulumi.StringInput 227 // The subnets and IP addresses in your VPC that you want DNS queries to pass through on the way from your VPCs 228 // to your network (for outbound endpoints) or on the way from your network to your VPCs (for inbound endpoints). Described below. 229 IpAddresses ResolverEndpointIpAddressArrayInput 230 // The friendly name of the Route 53 Resolver endpoint. 231 Name pulumi.StringPtrInput 232 // The protocols you want to use for the Route 53 Resolver endpoint. Valid values: `DoH`, `Do53`, `DoH-FIPS`. 233 Protocols pulumi.StringArrayInput 234 // The Route 53 Resolver endpoint IP address type. Valid values: `IPV4`, `IPV6`, `DUALSTACK`. 235 ResolverEndpointType pulumi.StringPtrInput 236 // The ID of one or more security groups that you want to use to control access to this VPC. 237 SecurityGroupIds pulumi.StringArrayInput 238 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 239 Tags pulumi.StringMapInput 240 } 241 242 func (ResolverEndpointArgs) ElementType() reflect.Type { 243 return reflect.TypeOf((*resolverEndpointArgs)(nil)).Elem() 244 } 245 246 type ResolverEndpointInput interface { 247 pulumi.Input 248 249 ToResolverEndpointOutput() ResolverEndpointOutput 250 ToResolverEndpointOutputWithContext(ctx context.Context) ResolverEndpointOutput 251 } 252 253 func (*ResolverEndpoint) ElementType() reflect.Type { 254 return reflect.TypeOf((**ResolverEndpoint)(nil)).Elem() 255 } 256 257 func (i *ResolverEndpoint) ToResolverEndpointOutput() ResolverEndpointOutput { 258 return i.ToResolverEndpointOutputWithContext(context.Background()) 259 } 260 261 func (i *ResolverEndpoint) ToResolverEndpointOutputWithContext(ctx context.Context) ResolverEndpointOutput { 262 return pulumi.ToOutputWithContext(ctx, i).(ResolverEndpointOutput) 263 } 264 265 // ResolverEndpointArrayInput is an input type that accepts ResolverEndpointArray and ResolverEndpointArrayOutput values. 266 // You can construct a concrete instance of `ResolverEndpointArrayInput` via: 267 // 268 // ResolverEndpointArray{ ResolverEndpointArgs{...} } 269 type ResolverEndpointArrayInput interface { 270 pulumi.Input 271 272 ToResolverEndpointArrayOutput() ResolverEndpointArrayOutput 273 ToResolverEndpointArrayOutputWithContext(context.Context) ResolverEndpointArrayOutput 274 } 275 276 type ResolverEndpointArray []ResolverEndpointInput 277 278 func (ResolverEndpointArray) ElementType() reflect.Type { 279 return reflect.TypeOf((*[]*ResolverEndpoint)(nil)).Elem() 280 } 281 282 func (i ResolverEndpointArray) ToResolverEndpointArrayOutput() ResolverEndpointArrayOutput { 283 return i.ToResolverEndpointArrayOutputWithContext(context.Background()) 284 } 285 286 func (i ResolverEndpointArray) ToResolverEndpointArrayOutputWithContext(ctx context.Context) ResolverEndpointArrayOutput { 287 return pulumi.ToOutputWithContext(ctx, i).(ResolverEndpointArrayOutput) 288 } 289 290 // ResolverEndpointMapInput is an input type that accepts ResolverEndpointMap and ResolverEndpointMapOutput values. 291 // You can construct a concrete instance of `ResolverEndpointMapInput` via: 292 // 293 // ResolverEndpointMap{ "key": ResolverEndpointArgs{...} } 294 type ResolverEndpointMapInput interface { 295 pulumi.Input 296 297 ToResolverEndpointMapOutput() ResolverEndpointMapOutput 298 ToResolverEndpointMapOutputWithContext(context.Context) ResolverEndpointMapOutput 299 } 300 301 type ResolverEndpointMap map[string]ResolverEndpointInput 302 303 func (ResolverEndpointMap) ElementType() reflect.Type { 304 return reflect.TypeOf((*map[string]*ResolverEndpoint)(nil)).Elem() 305 } 306 307 func (i ResolverEndpointMap) ToResolverEndpointMapOutput() ResolverEndpointMapOutput { 308 return i.ToResolverEndpointMapOutputWithContext(context.Background()) 309 } 310 311 func (i ResolverEndpointMap) ToResolverEndpointMapOutputWithContext(ctx context.Context) ResolverEndpointMapOutput { 312 return pulumi.ToOutputWithContext(ctx, i).(ResolverEndpointMapOutput) 313 } 314 315 type ResolverEndpointOutput struct{ *pulumi.OutputState } 316 317 func (ResolverEndpointOutput) ElementType() reflect.Type { 318 return reflect.TypeOf((**ResolverEndpoint)(nil)).Elem() 319 } 320 321 func (o ResolverEndpointOutput) ToResolverEndpointOutput() ResolverEndpointOutput { 322 return o 323 } 324 325 func (o ResolverEndpointOutput) ToResolverEndpointOutputWithContext(ctx context.Context) ResolverEndpointOutput { 326 return o 327 } 328 329 // The ARN of the Route 53 Resolver endpoint. 330 func (o ResolverEndpointOutput) Arn() pulumi.StringOutput { 331 return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 332 } 333 334 // The direction of DNS queries to or from the Route 53 Resolver endpoint. 335 // Valid values are `INBOUND` (resolver forwards DNS queries to the DNS service for a VPC from your network or another VPC) 336 // or `OUTBOUND` (resolver forwards DNS queries from the DNS service for a VPC to your network or another VPC). 337 func (o ResolverEndpointOutput) Direction() pulumi.StringOutput { 338 return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringOutput { return v.Direction }).(pulumi.StringOutput) 339 } 340 341 // The ID of the VPC that you want to create the resolver endpoint in. 342 func (o ResolverEndpointOutput) HostVpcId() pulumi.StringOutput { 343 return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringOutput { return v.HostVpcId }).(pulumi.StringOutput) 344 } 345 346 // The subnets and IP addresses in your VPC that you want DNS queries to pass through on the way from your VPCs 347 // to your network (for outbound endpoints) or on the way from your network to your VPCs (for inbound endpoints). Described below. 348 func (o ResolverEndpointOutput) IpAddresses() ResolverEndpointIpAddressArrayOutput { 349 return o.ApplyT(func(v *ResolverEndpoint) ResolverEndpointIpAddressArrayOutput { return v.IpAddresses }).(ResolverEndpointIpAddressArrayOutput) 350 } 351 352 // The friendly name of the Route 53 Resolver endpoint. 353 func (o ResolverEndpointOutput) Name() pulumi.StringOutput { 354 return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 355 } 356 357 // The protocols you want to use for the Route 53 Resolver endpoint. Valid values: `DoH`, `Do53`, `DoH-FIPS`. 358 func (o ResolverEndpointOutput) Protocols() pulumi.StringArrayOutput { 359 return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringArrayOutput { return v.Protocols }).(pulumi.StringArrayOutput) 360 } 361 362 // The Route 53 Resolver endpoint IP address type. Valid values: `IPV4`, `IPV6`, `DUALSTACK`. 363 func (o ResolverEndpointOutput) ResolverEndpointType() pulumi.StringOutput { 364 return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringOutput { return v.ResolverEndpointType }).(pulumi.StringOutput) 365 } 366 367 // The ID of one or more security groups that you want to use to control access to this VPC. 368 func (o ResolverEndpointOutput) SecurityGroupIds() pulumi.StringArrayOutput { 369 return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput) 370 } 371 372 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 373 func (o ResolverEndpointOutput) Tags() pulumi.StringMapOutput { 374 return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 375 } 376 377 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 378 // 379 // Deprecated: Please use `tags` instead. 380 func (o ResolverEndpointOutput) TagsAll() pulumi.StringMapOutput { 381 return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 382 } 383 384 type ResolverEndpointArrayOutput struct{ *pulumi.OutputState } 385 386 func (ResolverEndpointArrayOutput) ElementType() reflect.Type { 387 return reflect.TypeOf((*[]*ResolverEndpoint)(nil)).Elem() 388 } 389 390 func (o ResolverEndpointArrayOutput) ToResolverEndpointArrayOutput() ResolverEndpointArrayOutput { 391 return o 392 } 393 394 func (o ResolverEndpointArrayOutput) ToResolverEndpointArrayOutputWithContext(ctx context.Context) ResolverEndpointArrayOutput { 395 return o 396 } 397 398 func (o ResolverEndpointArrayOutput) Index(i pulumi.IntInput) ResolverEndpointOutput { 399 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResolverEndpoint { 400 return vs[0].([]*ResolverEndpoint)[vs[1].(int)] 401 }).(ResolverEndpointOutput) 402 } 403 404 type ResolverEndpointMapOutput struct{ *pulumi.OutputState } 405 406 func (ResolverEndpointMapOutput) ElementType() reflect.Type { 407 return reflect.TypeOf((*map[string]*ResolverEndpoint)(nil)).Elem() 408 } 409 410 func (o ResolverEndpointMapOutput) ToResolverEndpointMapOutput() ResolverEndpointMapOutput { 411 return o 412 } 413 414 func (o ResolverEndpointMapOutput) ToResolverEndpointMapOutputWithContext(ctx context.Context) ResolverEndpointMapOutput { 415 return o 416 } 417 418 func (o ResolverEndpointMapOutput) MapIndex(k pulumi.StringInput) ResolverEndpointOutput { 419 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResolverEndpoint { 420 return vs[0].(map[string]*ResolverEndpoint)[vs[1].(string)] 421 }).(ResolverEndpointOutput) 422 } 423 424 func init() { 425 pulumi.RegisterInputType(reflect.TypeOf((*ResolverEndpointInput)(nil)).Elem(), &ResolverEndpoint{}) 426 pulumi.RegisterInputType(reflect.TypeOf((*ResolverEndpointArrayInput)(nil)).Elem(), ResolverEndpointArray{}) 427 pulumi.RegisterInputType(reflect.TypeOf((*ResolverEndpointMapInput)(nil)).Elem(), ResolverEndpointMap{}) 428 pulumi.RegisterOutputType(ResolverEndpointOutput{}) 429 pulumi.RegisterOutputType(ResolverEndpointArrayOutput{}) 430 pulumi.RegisterOutputType(ResolverEndpointMapOutput{}) 431 }