github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/defaultNetworkAcl.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 resource to manage a VPC's default network ACL. This resource can manage the default network ACL of the default or a non-default VPC. 16 // 17 // > **NOTE:** This is an advanced resource with special caveats. Please read this document in its entirety before using this resource. The `ec2.DefaultNetworkAcl` behaves differently from normal resources. This provider does not _create_ this resource but instead attempts to "adopt" it into management. 18 // 19 // Every VPC has a default network ACL that can be managed but not destroyed. When the provider first adopts the Default Network ACL, it **immediately removes all rules in the ACL**. It then proceeds to create any rules specified in the configuration. This step is required so that only the rules specified in the configuration are created. 20 // 21 // This resource treats its inline rules as absolute; only the rules defined inline are created, and any additions/removals external to this resource will result in diffs being shown. For these reasons, this resource is incompatible with the `ec2.NetworkAclRule` resource. 22 // 23 // For more information about Network ACLs, see the AWS Documentation on [Network ACLs][aws-network-acls]. 24 // 25 // ## Example Usage 26 // 27 // ### Basic Example 28 // 29 // The following config gives the Default Network ACL the same rules that AWS includes but pulls the resource under management by this provider. This means that any ACL rules added or changed will be detected as drift. 30 // 31 // <!--Start PulumiCodeChooser --> 32 // ```go 33 // package main 34 // 35 // import ( 36 // 37 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 38 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 39 // 40 // ) 41 // 42 // func main() { 43 // pulumi.Run(func(ctx *pulumi.Context) error { 44 // mainvpc, err := ec2.NewVpc(ctx, "mainvpc", &ec2.VpcArgs{ 45 // CidrBlock: pulumi.String("10.1.0.0/16"), 46 // }) 47 // if err != nil { 48 // return err 49 // } 50 // _, err = ec2.NewDefaultNetworkAcl(ctx, "default", &ec2.DefaultNetworkAclArgs{ 51 // DefaultNetworkAclId: mainvpc.DefaultNetworkAclId, 52 // Ingress: ec2.DefaultNetworkAclIngressArray{ 53 // &ec2.DefaultNetworkAclIngressArgs{ 54 // Protocol: pulumi.String("-1"), 55 // RuleNo: pulumi.Int(100), 56 // Action: pulumi.String("allow"), 57 // CidrBlock: pulumi.String("0.0.0.0/0"), 58 // FromPort: pulumi.Int(0), 59 // ToPort: pulumi.Int(0), 60 // }, 61 // }, 62 // Egress: ec2.DefaultNetworkAclEgressArray{ 63 // &ec2.DefaultNetworkAclEgressArgs{ 64 // Protocol: pulumi.String("-1"), 65 // RuleNo: pulumi.Int(100), 66 // Action: pulumi.String("allow"), 67 // CidrBlock: pulumi.String("0.0.0.0/0"), 68 // FromPort: pulumi.Int(0), 69 // ToPort: pulumi.Int(0), 70 // }, 71 // }, 72 // }) 73 // if err != nil { 74 // return err 75 // } 76 // return nil 77 // }) 78 // } 79 // 80 // ``` 81 // <!--End PulumiCodeChooser --> 82 // 83 // ### Example: Deny All Egress Traffic, Allow Ingress 84 // 85 // The following denies all Egress traffic by omitting any `egress` rules, while including the default `ingress` rule to allow all traffic. 86 // 87 // <!--Start PulumiCodeChooser --> 88 // ```go 89 // package main 90 // 91 // import ( 92 // 93 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 94 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 95 // 96 // ) 97 // 98 // func main() { 99 // pulumi.Run(func(ctx *pulumi.Context) error { 100 // mainvpc, err := ec2.NewVpc(ctx, "mainvpc", &ec2.VpcArgs{ 101 // CidrBlock: pulumi.String("10.1.0.0/16"), 102 // }) 103 // if err != nil { 104 // return err 105 // } 106 // _, err = ec2.NewDefaultNetworkAcl(ctx, "default", &ec2.DefaultNetworkAclArgs{ 107 // DefaultNetworkAclId: mainvpc.DefaultNetworkAclId, 108 // Ingress: ec2.DefaultNetworkAclIngressArray{ 109 // &ec2.DefaultNetworkAclIngressArgs{ 110 // Protocol: pulumi.String("-1"), 111 // RuleNo: pulumi.Int(100), 112 // Action: pulumi.String("allow"), 113 // CidrBlock: pulumi.Any(mainvpcAwsDefaultVpc.CidrBlock), 114 // FromPort: pulumi.Int(0), 115 // ToPort: pulumi.Int(0), 116 // }, 117 // }, 118 // }) 119 // if err != nil { 120 // return err 121 // } 122 // return nil 123 // }) 124 // } 125 // 126 // ``` 127 // <!--End PulumiCodeChooser --> 128 // 129 // ### Example: Deny All Traffic To Any Subnet In The Default Network ACL 130 // 131 // This config denies all traffic in the Default ACL. This can be useful if you want to lock down the VPC to force all resources to assign a non-default ACL. 132 // 133 // <!--Start PulumiCodeChooser --> 134 // ```go 135 // package main 136 // 137 // import ( 138 // 139 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 140 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 141 // 142 // ) 143 // 144 // func main() { 145 // pulumi.Run(func(ctx *pulumi.Context) error { 146 // mainvpc, err := ec2.NewVpc(ctx, "mainvpc", &ec2.VpcArgs{ 147 // CidrBlock: pulumi.String("10.1.0.0/16"), 148 // }) 149 // if err != nil { 150 // return err 151 // } 152 // _, err = ec2.NewDefaultNetworkAcl(ctx, "default", &ec2.DefaultNetworkAclArgs{ 153 // DefaultNetworkAclId: mainvpc.DefaultNetworkAclId, 154 // }) 155 // if err != nil { 156 // return err 157 // } 158 // return nil 159 // }) 160 // } 161 // 162 // ``` 163 // <!--End PulumiCodeChooser --> 164 // 165 // ### Managing Subnets In A Default Network ACL 166 // 167 // Within a VPC, all Subnets must be associated with a Network ACL. In order to "delete" the association between a Subnet and a non-default Network ACL, the association is destroyed by replacing it with an association between the Subnet and the Default ACL instead. 168 // 169 // When managing the Default Network ACL, you cannot "remove" Subnets. Instead, they must be reassigned to another Network ACL, or the Subnet itself must be destroyed. Because of these requirements, removing the `subnetIds` attribute from the configuration of a `ec2.DefaultNetworkAcl` resource may result in a reoccurring plan, until the Subnets are reassigned to another Network ACL or are destroyed. 170 // 171 // Because Subnets are by default associated with the Default Network ACL, any non-explicit association will show up as a plan to remove the Subnet. For example: if you have a custom `ec2.NetworkAcl` with two subnets attached, and you remove the `ec2.NetworkAcl` resource, after successfully destroying this resource future plans will show a diff on the managed `ec2.DefaultNetworkAcl`, as those two Subnets have been orphaned by the now destroyed network acl and thus adopted by the Default Network ACL. In order to avoid a reoccurring plan, they will need to be reassigned, destroyed, or added to the `subnetIds` attribute of the `ec2.DefaultNetworkAcl` entry. 172 // 173 // As an alternative to the above, you can also specify the following lifecycle configuration in your `ec2.DefaultNetworkAcl` resource: 174 // 175 // <!--Start PulumiCodeChooser --> 176 // ```go 177 // package main 178 // 179 // import ( 180 // 181 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 182 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 183 // 184 // ) 185 // 186 // func main() { 187 // pulumi.Run(func(ctx *pulumi.Context) error { 188 // _, err := ec2.NewDefaultNetworkAcl(ctx, "default", nil) 189 // if err != nil { 190 // return err 191 // } 192 // return nil 193 // }) 194 // } 195 // 196 // ``` 197 // <!--End PulumiCodeChooser --> 198 // 199 // ### Removing `ec2.DefaultNetworkAcl` From Your Configuration 200 // 201 // Each AWS VPC comes with a Default Network ACL that cannot be deleted. The `ec2.DefaultNetworkAcl` allows you to manage this Network ACL, but the provider cannot destroy it. Removing this resource from your configuration will remove it from your statefile and management, **but will not destroy the Network ACL.** All Subnets associations and ingress or egress rules will be left as they are at the time of removal. You can resume managing them via the AWS Console. 202 // 203 // ## Import 204 // 205 // Using `pulumi import`, import Default Network ACLs using the `id`. For example: 206 // 207 // ```sh 208 // $ pulumi import aws:ec2/defaultNetworkAcl:DefaultNetworkAcl sample acl-7aaabd18 209 // ``` 210 type DefaultNetworkAcl struct { 211 pulumi.CustomResourceState 212 213 // ARN of the Default Network ACL 214 Arn pulumi.StringOutput `pulumi:"arn"` 215 // Network ACL ID to manage. This attribute is exported from `ec2.Vpc`, or manually found via the AWS Console. 216 // 217 // The following arguments are optional: 218 DefaultNetworkAclId pulumi.StringOutput `pulumi:"defaultNetworkAclId"` 219 // Configuration block for an egress rule. Detailed below. 220 Egress DefaultNetworkAclEgressArrayOutput `pulumi:"egress"` 221 // Configuration block for an ingress rule. Detailed below. 222 Ingress DefaultNetworkAclIngressArrayOutput `pulumi:"ingress"` 223 // ID of the AWS account that owns the Default Network ACL 224 OwnerId pulumi.StringOutput `pulumi:"ownerId"` 225 // List of Subnet IDs to apply the ACL to. See the notes above on Managing Subnets in the Default Network ACL 226 SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"` 227 // 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. 228 Tags pulumi.StringMapOutput `pulumi:"tags"` 229 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 230 // 231 // Deprecated: Please use `tags` instead. 232 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 233 // ID of the associated VPC 234 VpcId pulumi.StringOutput `pulumi:"vpcId"` 235 } 236 237 // NewDefaultNetworkAcl registers a new resource with the given unique name, arguments, and options. 238 func NewDefaultNetworkAcl(ctx *pulumi.Context, 239 name string, args *DefaultNetworkAclArgs, opts ...pulumi.ResourceOption) (*DefaultNetworkAcl, error) { 240 if args == nil { 241 return nil, errors.New("missing one or more required arguments") 242 } 243 244 if args.DefaultNetworkAclId == nil { 245 return nil, errors.New("invalid value for required argument 'DefaultNetworkAclId'") 246 } 247 opts = internal.PkgResourceDefaultOpts(opts) 248 var resource DefaultNetworkAcl 249 err := ctx.RegisterResource("aws:ec2/defaultNetworkAcl:DefaultNetworkAcl", name, args, &resource, opts...) 250 if err != nil { 251 return nil, err 252 } 253 return &resource, nil 254 } 255 256 // GetDefaultNetworkAcl gets an existing DefaultNetworkAcl resource's state with the given name, ID, and optional 257 // state properties that are used to uniquely qualify the lookup (nil if not required). 258 func GetDefaultNetworkAcl(ctx *pulumi.Context, 259 name string, id pulumi.IDInput, state *DefaultNetworkAclState, opts ...pulumi.ResourceOption) (*DefaultNetworkAcl, error) { 260 var resource DefaultNetworkAcl 261 err := ctx.ReadResource("aws:ec2/defaultNetworkAcl:DefaultNetworkAcl", name, id, state, &resource, opts...) 262 if err != nil { 263 return nil, err 264 } 265 return &resource, nil 266 } 267 268 // Input properties used for looking up and filtering DefaultNetworkAcl resources. 269 type defaultNetworkAclState struct { 270 // ARN of the Default Network ACL 271 Arn *string `pulumi:"arn"` 272 // Network ACL ID to manage. This attribute is exported from `ec2.Vpc`, or manually found via the AWS Console. 273 // 274 // The following arguments are optional: 275 DefaultNetworkAclId *string `pulumi:"defaultNetworkAclId"` 276 // Configuration block for an egress rule. Detailed below. 277 Egress []DefaultNetworkAclEgress `pulumi:"egress"` 278 // Configuration block for an ingress rule. Detailed below. 279 Ingress []DefaultNetworkAclIngress `pulumi:"ingress"` 280 // ID of the AWS account that owns the Default Network ACL 281 OwnerId *string `pulumi:"ownerId"` 282 // List of Subnet IDs to apply the ACL to. See the notes above on Managing Subnets in the Default Network ACL 283 SubnetIds []string `pulumi:"subnetIds"` 284 // 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. 285 Tags map[string]string `pulumi:"tags"` 286 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 287 // 288 // Deprecated: Please use `tags` instead. 289 TagsAll map[string]string `pulumi:"tagsAll"` 290 // ID of the associated VPC 291 VpcId *string `pulumi:"vpcId"` 292 } 293 294 type DefaultNetworkAclState struct { 295 // ARN of the Default Network ACL 296 Arn pulumi.StringPtrInput 297 // Network ACL ID to manage. This attribute is exported from `ec2.Vpc`, or manually found via the AWS Console. 298 // 299 // The following arguments are optional: 300 DefaultNetworkAclId pulumi.StringPtrInput 301 // Configuration block for an egress rule. Detailed below. 302 Egress DefaultNetworkAclEgressArrayInput 303 // Configuration block for an ingress rule. Detailed below. 304 Ingress DefaultNetworkAclIngressArrayInput 305 // ID of the AWS account that owns the Default Network ACL 306 OwnerId pulumi.StringPtrInput 307 // List of Subnet IDs to apply the ACL to. See the notes above on Managing Subnets in the Default Network ACL 308 SubnetIds pulumi.StringArrayInput 309 // 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. 310 Tags pulumi.StringMapInput 311 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 312 // 313 // Deprecated: Please use `tags` instead. 314 TagsAll pulumi.StringMapInput 315 // ID of the associated VPC 316 VpcId pulumi.StringPtrInput 317 } 318 319 func (DefaultNetworkAclState) ElementType() reflect.Type { 320 return reflect.TypeOf((*defaultNetworkAclState)(nil)).Elem() 321 } 322 323 type defaultNetworkAclArgs struct { 324 // Network ACL ID to manage. This attribute is exported from `ec2.Vpc`, or manually found via the AWS Console. 325 // 326 // The following arguments are optional: 327 DefaultNetworkAclId string `pulumi:"defaultNetworkAclId"` 328 // Configuration block for an egress rule. Detailed below. 329 Egress []DefaultNetworkAclEgress `pulumi:"egress"` 330 // Configuration block for an ingress rule. Detailed below. 331 Ingress []DefaultNetworkAclIngress `pulumi:"ingress"` 332 // List of Subnet IDs to apply the ACL to. See the notes above on Managing Subnets in the Default Network ACL 333 SubnetIds []string `pulumi:"subnetIds"` 334 // 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. 335 Tags map[string]string `pulumi:"tags"` 336 } 337 338 // The set of arguments for constructing a DefaultNetworkAcl resource. 339 type DefaultNetworkAclArgs struct { 340 // Network ACL ID to manage. This attribute is exported from `ec2.Vpc`, or manually found via the AWS Console. 341 // 342 // The following arguments are optional: 343 DefaultNetworkAclId pulumi.StringInput 344 // Configuration block for an egress rule. Detailed below. 345 Egress DefaultNetworkAclEgressArrayInput 346 // Configuration block for an ingress rule. Detailed below. 347 Ingress DefaultNetworkAclIngressArrayInput 348 // List of Subnet IDs to apply the ACL to. See the notes above on Managing Subnets in the Default Network ACL 349 SubnetIds pulumi.StringArrayInput 350 // 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. 351 Tags pulumi.StringMapInput 352 } 353 354 func (DefaultNetworkAclArgs) ElementType() reflect.Type { 355 return reflect.TypeOf((*defaultNetworkAclArgs)(nil)).Elem() 356 } 357 358 type DefaultNetworkAclInput interface { 359 pulumi.Input 360 361 ToDefaultNetworkAclOutput() DefaultNetworkAclOutput 362 ToDefaultNetworkAclOutputWithContext(ctx context.Context) DefaultNetworkAclOutput 363 } 364 365 func (*DefaultNetworkAcl) ElementType() reflect.Type { 366 return reflect.TypeOf((**DefaultNetworkAcl)(nil)).Elem() 367 } 368 369 func (i *DefaultNetworkAcl) ToDefaultNetworkAclOutput() DefaultNetworkAclOutput { 370 return i.ToDefaultNetworkAclOutputWithContext(context.Background()) 371 } 372 373 func (i *DefaultNetworkAcl) ToDefaultNetworkAclOutputWithContext(ctx context.Context) DefaultNetworkAclOutput { 374 return pulumi.ToOutputWithContext(ctx, i).(DefaultNetworkAclOutput) 375 } 376 377 // DefaultNetworkAclArrayInput is an input type that accepts DefaultNetworkAclArray and DefaultNetworkAclArrayOutput values. 378 // You can construct a concrete instance of `DefaultNetworkAclArrayInput` via: 379 // 380 // DefaultNetworkAclArray{ DefaultNetworkAclArgs{...} } 381 type DefaultNetworkAclArrayInput interface { 382 pulumi.Input 383 384 ToDefaultNetworkAclArrayOutput() DefaultNetworkAclArrayOutput 385 ToDefaultNetworkAclArrayOutputWithContext(context.Context) DefaultNetworkAclArrayOutput 386 } 387 388 type DefaultNetworkAclArray []DefaultNetworkAclInput 389 390 func (DefaultNetworkAclArray) ElementType() reflect.Type { 391 return reflect.TypeOf((*[]*DefaultNetworkAcl)(nil)).Elem() 392 } 393 394 func (i DefaultNetworkAclArray) ToDefaultNetworkAclArrayOutput() DefaultNetworkAclArrayOutput { 395 return i.ToDefaultNetworkAclArrayOutputWithContext(context.Background()) 396 } 397 398 func (i DefaultNetworkAclArray) ToDefaultNetworkAclArrayOutputWithContext(ctx context.Context) DefaultNetworkAclArrayOutput { 399 return pulumi.ToOutputWithContext(ctx, i).(DefaultNetworkAclArrayOutput) 400 } 401 402 // DefaultNetworkAclMapInput is an input type that accepts DefaultNetworkAclMap and DefaultNetworkAclMapOutput values. 403 // You can construct a concrete instance of `DefaultNetworkAclMapInput` via: 404 // 405 // DefaultNetworkAclMap{ "key": DefaultNetworkAclArgs{...} } 406 type DefaultNetworkAclMapInput interface { 407 pulumi.Input 408 409 ToDefaultNetworkAclMapOutput() DefaultNetworkAclMapOutput 410 ToDefaultNetworkAclMapOutputWithContext(context.Context) DefaultNetworkAclMapOutput 411 } 412 413 type DefaultNetworkAclMap map[string]DefaultNetworkAclInput 414 415 func (DefaultNetworkAclMap) ElementType() reflect.Type { 416 return reflect.TypeOf((*map[string]*DefaultNetworkAcl)(nil)).Elem() 417 } 418 419 func (i DefaultNetworkAclMap) ToDefaultNetworkAclMapOutput() DefaultNetworkAclMapOutput { 420 return i.ToDefaultNetworkAclMapOutputWithContext(context.Background()) 421 } 422 423 func (i DefaultNetworkAclMap) ToDefaultNetworkAclMapOutputWithContext(ctx context.Context) DefaultNetworkAclMapOutput { 424 return pulumi.ToOutputWithContext(ctx, i).(DefaultNetworkAclMapOutput) 425 } 426 427 type DefaultNetworkAclOutput struct{ *pulumi.OutputState } 428 429 func (DefaultNetworkAclOutput) ElementType() reflect.Type { 430 return reflect.TypeOf((**DefaultNetworkAcl)(nil)).Elem() 431 } 432 433 func (o DefaultNetworkAclOutput) ToDefaultNetworkAclOutput() DefaultNetworkAclOutput { 434 return o 435 } 436 437 func (o DefaultNetworkAclOutput) ToDefaultNetworkAclOutputWithContext(ctx context.Context) DefaultNetworkAclOutput { 438 return o 439 } 440 441 // ARN of the Default Network ACL 442 func (o DefaultNetworkAclOutput) Arn() pulumi.StringOutput { 443 return o.ApplyT(func(v *DefaultNetworkAcl) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 444 } 445 446 // Network ACL ID to manage. This attribute is exported from `ec2.Vpc`, or manually found via the AWS Console. 447 // 448 // The following arguments are optional: 449 func (o DefaultNetworkAclOutput) DefaultNetworkAclId() pulumi.StringOutput { 450 return o.ApplyT(func(v *DefaultNetworkAcl) pulumi.StringOutput { return v.DefaultNetworkAclId }).(pulumi.StringOutput) 451 } 452 453 // Configuration block for an egress rule. Detailed below. 454 func (o DefaultNetworkAclOutput) Egress() DefaultNetworkAclEgressArrayOutput { 455 return o.ApplyT(func(v *DefaultNetworkAcl) DefaultNetworkAclEgressArrayOutput { return v.Egress }).(DefaultNetworkAclEgressArrayOutput) 456 } 457 458 // Configuration block for an ingress rule. Detailed below. 459 func (o DefaultNetworkAclOutput) Ingress() DefaultNetworkAclIngressArrayOutput { 460 return o.ApplyT(func(v *DefaultNetworkAcl) DefaultNetworkAclIngressArrayOutput { return v.Ingress }).(DefaultNetworkAclIngressArrayOutput) 461 } 462 463 // ID of the AWS account that owns the Default Network ACL 464 func (o DefaultNetworkAclOutput) OwnerId() pulumi.StringOutput { 465 return o.ApplyT(func(v *DefaultNetworkAcl) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput) 466 } 467 468 // List of Subnet IDs to apply the ACL to. See the notes above on Managing Subnets in the Default Network ACL 469 func (o DefaultNetworkAclOutput) SubnetIds() pulumi.StringArrayOutput { 470 return o.ApplyT(func(v *DefaultNetworkAcl) pulumi.StringArrayOutput { return v.SubnetIds }).(pulumi.StringArrayOutput) 471 } 472 473 // 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. 474 func (o DefaultNetworkAclOutput) Tags() pulumi.StringMapOutput { 475 return o.ApplyT(func(v *DefaultNetworkAcl) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 476 } 477 478 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 479 // 480 // Deprecated: Please use `tags` instead. 481 func (o DefaultNetworkAclOutput) TagsAll() pulumi.StringMapOutput { 482 return o.ApplyT(func(v *DefaultNetworkAcl) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 483 } 484 485 // ID of the associated VPC 486 func (o DefaultNetworkAclOutput) VpcId() pulumi.StringOutput { 487 return o.ApplyT(func(v *DefaultNetworkAcl) pulumi.StringOutput { return v.VpcId }).(pulumi.StringOutput) 488 } 489 490 type DefaultNetworkAclArrayOutput struct{ *pulumi.OutputState } 491 492 func (DefaultNetworkAclArrayOutput) ElementType() reflect.Type { 493 return reflect.TypeOf((*[]*DefaultNetworkAcl)(nil)).Elem() 494 } 495 496 func (o DefaultNetworkAclArrayOutput) ToDefaultNetworkAclArrayOutput() DefaultNetworkAclArrayOutput { 497 return o 498 } 499 500 func (o DefaultNetworkAclArrayOutput) ToDefaultNetworkAclArrayOutputWithContext(ctx context.Context) DefaultNetworkAclArrayOutput { 501 return o 502 } 503 504 func (o DefaultNetworkAclArrayOutput) Index(i pulumi.IntInput) DefaultNetworkAclOutput { 505 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DefaultNetworkAcl { 506 return vs[0].([]*DefaultNetworkAcl)[vs[1].(int)] 507 }).(DefaultNetworkAclOutput) 508 } 509 510 type DefaultNetworkAclMapOutput struct{ *pulumi.OutputState } 511 512 func (DefaultNetworkAclMapOutput) ElementType() reflect.Type { 513 return reflect.TypeOf((*map[string]*DefaultNetworkAcl)(nil)).Elem() 514 } 515 516 func (o DefaultNetworkAclMapOutput) ToDefaultNetworkAclMapOutput() DefaultNetworkAclMapOutput { 517 return o 518 } 519 520 func (o DefaultNetworkAclMapOutput) ToDefaultNetworkAclMapOutputWithContext(ctx context.Context) DefaultNetworkAclMapOutput { 521 return o 522 } 523 524 func (o DefaultNetworkAclMapOutput) MapIndex(k pulumi.StringInput) DefaultNetworkAclOutput { 525 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DefaultNetworkAcl { 526 return vs[0].(map[string]*DefaultNetworkAcl)[vs[1].(string)] 527 }).(DefaultNetworkAclOutput) 528 } 529 530 func init() { 531 pulumi.RegisterInputType(reflect.TypeOf((*DefaultNetworkAclInput)(nil)).Elem(), &DefaultNetworkAcl{}) 532 pulumi.RegisterInputType(reflect.TypeOf((*DefaultNetworkAclArrayInput)(nil)).Elem(), DefaultNetworkAclArray{}) 533 pulumi.RegisterInputType(reflect.TypeOf((*DefaultNetworkAclMapInput)(nil)).Elem(), DefaultNetworkAclMap{}) 534 pulumi.RegisterOutputType(DefaultNetworkAclOutput{}) 535 pulumi.RegisterOutputType(DefaultNetworkAclArrayOutput{}) 536 pulumi.RegisterOutputType(DefaultNetworkAclMapOutput{}) 537 }