github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/networkfirewall/firewall.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 networkfirewall
     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 an AWS Network Firewall Firewall 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/networkfirewall"
    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 := networkfirewall.NewFirewall(ctx, "example", &networkfirewall.FirewallArgs{
    33  //				Name:              pulumi.String("example"),
    34  //				FirewallPolicyArn: pulumi.Any(exampleAwsNetworkfirewallFirewallPolicy.Arn),
    35  //				VpcId:             pulumi.Any(exampleAwsVpc.Id),
    36  //				SubnetMappings: networkfirewall.FirewallSubnetMappingArray{
    37  //					&networkfirewall.FirewallSubnetMappingArgs{
    38  //						SubnetId: pulumi.Any(exampleAwsSubnet.Id),
    39  //					},
    40  //				},
    41  //				Tags: pulumi.StringMap{
    42  //					"Tag1": pulumi.String("Value1"),
    43  //					"Tag2": pulumi.String("Value2"),
    44  //				},
    45  //			})
    46  //			if err != nil {
    47  //				return err
    48  //			}
    49  //			return nil
    50  //		})
    51  //	}
    52  //
    53  // ```
    54  // <!--End PulumiCodeChooser -->
    55  //
    56  // ## Import
    57  //
    58  // Using `pulumi import`, import Network Firewall Firewalls using their `arn`. For example:
    59  //
    60  // ```sh
    61  // $ pulumi import aws:networkfirewall/firewall:Firewall example arn:aws:network-firewall:us-west-1:123456789012:firewall/example
    62  // ```
    63  type Firewall struct {
    64  	pulumi.CustomResourceState
    65  
    66  	// The Amazon Resource Name (ARN) that identifies the firewall.
    67  	Arn pulumi.StringOutput `pulumi:"arn"`
    68  	// A flag indicating whether the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. Defaults to `false`.
    69  	DeleteProtection pulumi.BoolPtrOutput `pulumi:"deleteProtection"`
    70  	// A friendly description of the firewall.
    71  	Description pulumi.StringPtrOutput `pulumi:"description"`
    72  	// KMS encryption configuration settings. See Encryption Configuration below for details.
    73  	EncryptionConfiguration FirewallEncryptionConfigurationPtrOutput `pulumi:"encryptionConfiguration"`
    74  	// The Amazon Resource Name (ARN) of the VPC Firewall policy.
    75  	FirewallPolicyArn pulumi.StringOutput `pulumi:"firewallPolicyArn"`
    76  	// A flag indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. Defaults to `false`.
    77  	FirewallPolicyChangeProtection pulumi.BoolPtrOutput `pulumi:"firewallPolicyChangeProtection"`
    78  	// Nested list of information about the current status of the firewall.
    79  	FirewallStatuses FirewallFirewallStatusArrayOutput `pulumi:"firewallStatuses"`
    80  	// A friendly name of the firewall.
    81  	Name pulumi.StringOutput `pulumi:"name"`
    82  	// A flag indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. Defaults to `false`.
    83  	SubnetChangeProtection pulumi.BoolPtrOutput `pulumi:"subnetChangeProtection"`
    84  	// Set of configuration blocks describing the public subnets. Each subnet must belong to a different Availability Zone in the VPC. AWS Network Firewall creates a firewall endpoint in each subnet. See Subnet Mapping below for details.
    85  	SubnetMappings FirewallSubnetMappingArrayOutput `pulumi:"subnetMappings"`
    86  	// Map of resource tags to associate with the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    87  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    88  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    89  	//
    90  	// Deprecated: Please use `tags` instead.
    91  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    92  	// A string token used when updating a firewall.
    93  	UpdateToken pulumi.StringOutput `pulumi:"updateToken"`
    94  	// The unique identifier of the VPC where AWS Network Firewall should create the firewall.
    95  	VpcId pulumi.StringOutput `pulumi:"vpcId"`
    96  }
    97  
    98  // NewFirewall registers a new resource with the given unique name, arguments, and options.
    99  func NewFirewall(ctx *pulumi.Context,
   100  	name string, args *FirewallArgs, opts ...pulumi.ResourceOption) (*Firewall, error) {
   101  	if args == nil {
   102  		return nil, errors.New("missing one or more required arguments")
   103  	}
   104  
   105  	if args.FirewallPolicyArn == nil {
   106  		return nil, errors.New("invalid value for required argument 'FirewallPolicyArn'")
   107  	}
   108  	if args.SubnetMappings == nil {
   109  		return nil, errors.New("invalid value for required argument 'SubnetMappings'")
   110  	}
   111  	if args.VpcId == nil {
   112  		return nil, errors.New("invalid value for required argument 'VpcId'")
   113  	}
   114  	opts = internal.PkgResourceDefaultOpts(opts)
   115  	var resource Firewall
   116  	err := ctx.RegisterResource("aws:networkfirewall/firewall:Firewall", name, args, &resource, opts...)
   117  	if err != nil {
   118  		return nil, err
   119  	}
   120  	return &resource, nil
   121  }
   122  
   123  // GetFirewall gets an existing Firewall resource's state with the given name, ID, and optional
   124  // state properties that are used to uniquely qualify the lookup (nil if not required).
   125  func GetFirewall(ctx *pulumi.Context,
   126  	name string, id pulumi.IDInput, state *FirewallState, opts ...pulumi.ResourceOption) (*Firewall, error) {
   127  	var resource Firewall
   128  	err := ctx.ReadResource("aws:networkfirewall/firewall:Firewall", name, id, state, &resource, opts...)
   129  	if err != nil {
   130  		return nil, err
   131  	}
   132  	return &resource, nil
   133  }
   134  
   135  // Input properties used for looking up and filtering Firewall resources.
   136  type firewallState struct {
   137  	// The Amazon Resource Name (ARN) that identifies the firewall.
   138  	Arn *string `pulumi:"arn"`
   139  	// A flag indicating whether the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. Defaults to `false`.
   140  	DeleteProtection *bool `pulumi:"deleteProtection"`
   141  	// A friendly description of the firewall.
   142  	Description *string `pulumi:"description"`
   143  	// KMS encryption configuration settings. See Encryption Configuration below for details.
   144  	EncryptionConfiguration *FirewallEncryptionConfiguration `pulumi:"encryptionConfiguration"`
   145  	// The Amazon Resource Name (ARN) of the VPC Firewall policy.
   146  	FirewallPolicyArn *string `pulumi:"firewallPolicyArn"`
   147  	// A flag indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. Defaults to `false`.
   148  	FirewallPolicyChangeProtection *bool `pulumi:"firewallPolicyChangeProtection"`
   149  	// Nested list of information about the current status of the firewall.
   150  	FirewallStatuses []FirewallFirewallStatus `pulumi:"firewallStatuses"`
   151  	// A friendly name of the firewall.
   152  	Name *string `pulumi:"name"`
   153  	// A flag indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. Defaults to `false`.
   154  	SubnetChangeProtection *bool `pulumi:"subnetChangeProtection"`
   155  	// Set of configuration blocks describing the public subnets. Each subnet must belong to a different Availability Zone in the VPC. AWS Network Firewall creates a firewall endpoint in each subnet. See Subnet Mapping below for details.
   156  	SubnetMappings []FirewallSubnetMapping `pulumi:"subnetMappings"`
   157  	// Map of resource tags to associate with the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   158  	Tags map[string]string `pulumi:"tags"`
   159  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   160  	//
   161  	// Deprecated: Please use `tags` instead.
   162  	TagsAll map[string]string `pulumi:"tagsAll"`
   163  	// A string token used when updating a firewall.
   164  	UpdateToken *string `pulumi:"updateToken"`
   165  	// The unique identifier of the VPC where AWS Network Firewall should create the firewall.
   166  	VpcId *string `pulumi:"vpcId"`
   167  }
   168  
   169  type FirewallState struct {
   170  	// The Amazon Resource Name (ARN) that identifies the firewall.
   171  	Arn pulumi.StringPtrInput
   172  	// A flag indicating whether the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. Defaults to `false`.
   173  	DeleteProtection pulumi.BoolPtrInput
   174  	// A friendly description of the firewall.
   175  	Description pulumi.StringPtrInput
   176  	// KMS encryption configuration settings. See Encryption Configuration below for details.
   177  	EncryptionConfiguration FirewallEncryptionConfigurationPtrInput
   178  	// The Amazon Resource Name (ARN) of the VPC Firewall policy.
   179  	FirewallPolicyArn pulumi.StringPtrInput
   180  	// A flag indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. Defaults to `false`.
   181  	FirewallPolicyChangeProtection pulumi.BoolPtrInput
   182  	// Nested list of information about the current status of the firewall.
   183  	FirewallStatuses FirewallFirewallStatusArrayInput
   184  	// A friendly name of the firewall.
   185  	Name pulumi.StringPtrInput
   186  	// A flag indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. Defaults to `false`.
   187  	SubnetChangeProtection pulumi.BoolPtrInput
   188  	// Set of configuration blocks describing the public subnets. Each subnet must belong to a different Availability Zone in the VPC. AWS Network Firewall creates a firewall endpoint in each subnet. See Subnet Mapping below for details.
   189  	SubnetMappings FirewallSubnetMappingArrayInput
   190  	// Map of resource tags to associate with the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   191  	Tags pulumi.StringMapInput
   192  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   193  	//
   194  	// Deprecated: Please use `tags` instead.
   195  	TagsAll pulumi.StringMapInput
   196  	// A string token used when updating a firewall.
   197  	UpdateToken pulumi.StringPtrInput
   198  	// The unique identifier of the VPC where AWS Network Firewall should create the firewall.
   199  	VpcId pulumi.StringPtrInput
   200  }
   201  
   202  func (FirewallState) ElementType() reflect.Type {
   203  	return reflect.TypeOf((*firewallState)(nil)).Elem()
   204  }
   205  
   206  type firewallArgs struct {
   207  	// A flag indicating whether the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. Defaults to `false`.
   208  	DeleteProtection *bool `pulumi:"deleteProtection"`
   209  	// A friendly description of the firewall.
   210  	Description *string `pulumi:"description"`
   211  	// KMS encryption configuration settings. See Encryption Configuration below for details.
   212  	EncryptionConfiguration *FirewallEncryptionConfiguration `pulumi:"encryptionConfiguration"`
   213  	// The Amazon Resource Name (ARN) of the VPC Firewall policy.
   214  	FirewallPolicyArn string `pulumi:"firewallPolicyArn"`
   215  	// A flag indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. Defaults to `false`.
   216  	FirewallPolicyChangeProtection *bool `pulumi:"firewallPolicyChangeProtection"`
   217  	// A friendly name of the firewall.
   218  	Name *string `pulumi:"name"`
   219  	// A flag indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. Defaults to `false`.
   220  	SubnetChangeProtection *bool `pulumi:"subnetChangeProtection"`
   221  	// Set of configuration blocks describing the public subnets. Each subnet must belong to a different Availability Zone in the VPC. AWS Network Firewall creates a firewall endpoint in each subnet. See Subnet Mapping below for details.
   222  	SubnetMappings []FirewallSubnetMapping `pulumi:"subnetMappings"`
   223  	// Map of resource tags to associate with the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   224  	Tags map[string]string `pulumi:"tags"`
   225  	// The unique identifier of the VPC where AWS Network Firewall should create the firewall.
   226  	VpcId string `pulumi:"vpcId"`
   227  }
   228  
   229  // The set of arguments for constructing a Firewall resource.
   230  type FirewallArgs struct {
   231  	// A flag indicating whether the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. Defaults to `false`.
   232  	DeleteProtection pulumi.BoolPtrInput
   233  	// A friendly description of the firewall.
   234  	Description pulumi.StringPtrInput
   235  	// KMS encryption configuration settings. See Encryption Configuration below for details.
   236  	EncryptionConfiguration FirewallEncryptionConfigurationPtrInput
   237  	// The Amazon Resource Name (ARN) of the VPC Firewall policy.
   238  	FirewallPolicyArn pulumi.StringInput
   239  	// A flag indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. Defaults to `false`.
   240  	FirewallPolicyChangeProtection pulumi.BoolPtrInput
   241  	// A friendly name of the firewall.
   242  	Name pulumi.StringPtrInput
   243  	// A flag indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. Defaults to `false`.
   244  	SubnetChangeProtection pulumi.BoolPtrInput
   245  	// Set of configuration blocks describing the public subnets. Each subnet must belong to a different Availability Zone in the VPC. AWS Network Firewall creates a firewall endpoint in each subnet. See Subnet Mapping below for details.
   246  	SubnetMappings FirewallSubnetMappingArrayInput
   247  	// Map of resource tags to associate with the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   248  	Tags pulumi.StringMapInput
   249  	// The unique identifier of the VPC where AWS Network Firewall should create the firewall.
   250  	VpcId pulumi.StringInput
   251  }
   252  
   253  func (FirewallArgs) ElementType() reflect.Type {
   254  	return reflect.TypeOf((*firewallArgs)(nil)).Elem()
   255  }
   256  
   257  type FirewallInput interface {
   258  	pulumi.Input
   259  
   260  	ToFirewallOutput() FirewallOutput
   261  	ToFirewallOutputWithContext(ctx context.Context) FirewallOutput
   262  }
   263  
   264  func (*Firewall) ElementType() reflect.Type {
   265  	return reflect.TypeOf((**Firewall)(nil)).Elem()
   266  }
   267  
   268  func (i *Firewall) ToFirewallOutput() FirewallOutput {
   269  	return i.ToFirewallOutputWithContext(context.Background())
   270  }
   271  
   272  func (i *Firewall) ToFirewallOutputWithContext(ctx context.Context) FirewallOutput {
   273  	return pulumi.ToOutputWithContext(ctx, i).(FirewallOutput)
   274  }
   275  
   276  // FirewallArrayInput is an input type that accepts FirewallArray and FirewallArrayOutput values.
   277  // You can construct a concrete instance of `FirewallArrayInput` via:
   278  //
   279  //	FirewallArray{ FirewallArgs{...} }
   280  type FirewallArrayInput interface {
   281  	pulumi.Input
   282  
   283  	ToFirewallArrayOutput() FirewallArrayOutput
   284  	ToFirewallArrayOutputWithContext(context.Context) FirewallArrayOutput
   285  }
   286  
   287  type FirewallArray []FirewallInput
   288  
   289  func (FirewallArray) ElementType() reflect.Type {
   290  	return reflect.TypeOf((*[]*Firewall)(nil)).Elem()
   291  }
   292  
   293  func (i FirewallArray) ToFirewallArrayOutput() FirewallArrayOutput {
   294  	return i.ToFirewallArrayOutputWithContext(context.Background())
   295  }
   296  
   297  func (i FirewallArray) ToFirewallArrayOutputWithContext(ctx context.Context) FirewallArrayOutput {
   298  	return pulumi.ToOutputWithContext(ctx, i).(FirewallArrayOutput)
   299  }
   300  
   301  // FirewallMapInput is an input type that accepts FirewallMap and FirewallMapOutput values.
   302  // You can construct a concrete instance of `FirewallMapInput` via:
   303  //
   304  //	FirewallMap{ "key": FirewallArgs{...} }
   305  type FirewallMapInput interface {
   306  	pulumi.Input
   307  
   308  	ToFirewallMapOutput() FirewallMapOutput
   309  	ToFirewallMapOutputWithContext(context.Context) FirewallMapOutput
   310  }
   311  
   312  type FirewallMap map[string]FirewallInput
   313  
   314  func (FirewallMap) ElementType() reflect.Type {
   315  	return reflect.TypeOf((*map[string]*Firewall)(nil)).Elem()
   316  }
   317  
   318  func (i FirewallMap) ToFirewallMapOutput() FirewallMapOutput {
   319  	return i.ToFirewallMapOutputWithContext(context.Background())
   320  }
   321  
   322  func (i FirewallMap) ToFirewallMapOutputWithContext(ctx context.Context) FirewallMapOutput {
   323  	return pulumi.ToOutputWithContext(ctx, i).(FirewallMapOutput)
   324  }
   325  
   326  type FirewallOutput struct{ *pulumi.OutputState }
   327  
   328  func (FirewallOutput) ElementType() reflect.Type {
   329  	return reflect.TypeOf((**Firewall)(nil)).Elem()
   330  }
   331  
   332  func (o FirewallOutput) ToFirewallOutput() FirewallOutput {
   333  	return o
   334  }
   335  
   336  func (o FirewallOutput) ToFirewallOutputWithContext(ctx context.Context) FirewallOutput {
   337  	return o
   338  }
   339  
   340  // The Amazon Resource Name (ARN) that identifies the firewall.
   341  func (o FirewallOutput) Arn() pulumi.StringOutput {
   342  	return o.ApplyT(func(v *Firewall) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   343  }
   344  
   345  // A flag indicating whether the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. Defaults to `false`.
   346  func (o FirewallOutput) DeleteProtection() pulumi.BoolPtrOutput {
   347  	return o.ApplyT(func(v *Firewall) pulumi.BoolPtrOutput { return v.DeleteProtection }).(pulumi.BoolPtrOutput)
   348  }
   349  
   350  // A friendly description of the firewall.
   351  func (o FirewallOutput) Description() pulumi.StringPtrOutput {
   352  	return o.ApplyT(func(v *Firewall) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   353  }
   354  
   355  // KMS encryption configuration settings. See Encryption Configuration below for details.
   356  func (o FirewallOutput) EncryptionConfiguration() FirewallEncryptionConfigurationPtrOutput {
   357  	return o.ApplyT(func(v *Firewall) FirewallEncryptionConfigurationPtrOutput { return v.EncryptionConfiguration }).(FirewallEncryptionConfigurationPtrOutput)
   358  }
   359  
   360  // The Amazon Resource Name (ARN) of the VPC Firewall policy.
   361  func (o FirewallOutput) FirewallPolicyArn() pulumi.StringOutput {
   362  	return o.ApplyT(func(v *Firewall) pulumi.StringOutput { return v.FirewallPolicyArn }).(pulumi.StringOutput)
   363  }
   364  
   365  // A flag indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. Defaults to `false`.
   366  func (o FirewallOutput) FirewallPolicyChangeProtection() pulumi.BoolPtrOutput {
   367  	return o.ApplyT(func(v *Firewall) pulumi.BoolPtrOutput { return v.FirewallPolicyChangeProtection }).(pulumi.BoolPtrOutput)
   368  }
   369  
   370  // Nested list of information about the current status of the firewall.
   371  func (o FirewallOutput) FirewallStatuses() FirewallFirewallStatusArrayOutput {
   372  	return o.ApplyT(func(v *Firewall) FirewallFirewallStatusArrayOutput { return v.FirewallStatuses }).(FirewallFirewallStatusArrayOutput)
   373  }
   374  
   375  // A friendly name of the firewall.
   376  func (o FirewallOutput) Name() pulumi.StringOutput {
   377  	return o.ApplyT(func(v *Firewall) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   378  }
   379  
   380  // A flag indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. Defaults to `false`.
   381  func (o FirewallOutput) SubnetChangeProtection() pulumi.BoolPtrOutput {
   382  	return o.ApplyT(func(v *Firewall) pulumi.BoolPtrOutput { return v.SubnetChangeProtection }).(pulumi.BoolPtrOutput)
   383  }
   384  
   385  // Set of configuration blocks describing the public subnets. Each subnet must belong to a different Availability Zone in the VPC. AWS Network Firewall creates a firewall endpoint in each subnet. See Subnet Mapping below for details.
   386  func (o FirewallOutput) SubnetMappings() FirewallSubnetMappingArrayOutput {
   387  	return o.ApplyT(func(v *Firewall) FirewallSubnetMappingArrayOutput { return v.SubnetMappings }).(FirewallSubnetMappingArrayOutput)
   388  }
   389  
   390  // Map of resource tags to associate with the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   391  func (o FirewallOutput) Tags() pulumi.StringMapOutput {
   392  	return o.ApplyT(func(v *Firewall) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   393  }
   394  
   395  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   396  //
   397  // Deprecated: Please use `tags` instead.
   398  func (o FirewallOutput) TagsAll() pulumi.StringMapOutput {
   399  	return o.ApplyT(func(v *Firewall) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   400  }
   401  
   402  // A string token used when updating a firewall.
   403  func (o FirewallOutput) UpdateToken() pulumi.StringOutput {
   404  	return o.ApplyT(func(v *Firewall) pulumi.StringOutput { return v.UpdateToken }).(pulumi.StringOutput)
   405  }
   406  
   407  // The unique identifier of the VPC where AWS Network Firewall should create the firewall.
   408  func (o FirewallOutput) VpcId() pulumi.StringOutput {
   409  	return o.ApplyT(func(v *Firewall) pulumi.StringOutput { return v.VpcId }).(pulumi.StringOutput)
   410  }
   411  
   412  type FirewallArrayOutput struct{ *pulumi.OutputState }
   413  
   414  func (FirewallArrayOutput) ElementType() reflect.Type {
   415  	return reflect.TypeOf((*[]*Firewall)(nil)).Elem()
   416  }
   417  
   418  func (o FirewallArrayOutput) ToFirewallArrayOutput() FirewallArrayOutput {
   419  	return o
   420  }
   421  
   422  func (o FirewallArrayOutput) ToFirewallArrayOutputWithContext(ctx context.Context) FirewallArrayOutput {
   423  	return o
   424  }
   425  
   426  func (o FirewallArrayOutput) Index(i pulumi.IntInput) FirewallOutput {
   427  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Firewall {
   428  		return vs[0].([]*Firewall)[vs[1].(int)]
   429  	}).(FirewallOutput)
   430  }
   431  
   432  type FirewallMapOutput struct{ *pulumi.OutputState }
   433  
   434  func (FirewallMapOutput) ElementType() reflect.Type {
   435  	return reflect.TypeOf((*map[string]*Firewall)(nil)).Elem()
   436  }
   437  
   438  func (o FirewallMapOutput) ToFirewallMapOutput() FirewallMapOutput {
   439  	return o
   440  }
   441  
   442  func (o FirewallMapOutput) ToFirewallMapOutputWithContext(ctx context.Context) FirewallMapOutput {
   443  	return o
   444  }
   445  
   446  func (o FirewallMapOutput) MapIndex(k pulumi.StringInput) FirewallOutput {
   447  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Firewall {
   448  		return vs[0].(map[string]*Firewall)[vs[1].(string)]
   449  	}).(FirewallOutput)
   450  }
   451  
   452  func init() {
   453  	pulumi.RegisterInputType(reflect.TypeOf((*FirewallInput)(nil)).Elem(), &Firewall{})
   454  	pulumi.RegisterInputType(reflect.TypeOf((*FirewallArrayInput)(nil)).Elem(), FirewallArray{})
   455  	pulumi.RegisterInputType(reflect.TypeOf((*FirewallMapInput)(nil)).Elem(), FirewallMap{})
   456  	pulumi.RegisterOutputType(FirewallOutput{})
   457  	pulumi.RegisterOutputType(FirewallArrayOutput{})
   458  	pulumi.RegisterOutputType(FirewallMapOutput{})
   459  }