github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/wafv2/webAclLoggingConfiguration.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 wafv2
     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  // This resource creates a WAFv2 Web ACL Logging Configuration.
    16  //
    17  // !> **WARNING:** When logging from a WAFv2 Web ACL to a CloudWatch Log Group, the WAFv2 service tries to create or update a generic Log Resource Policy named `AWSWAF-LOGS`. However, if there are a large number of Web ACLs or if the account frequently creates and deletes Web ACLs, this policy may exceed the maximum policy size. As a result, this resource type will fail to be created. More details about this issue can be found in this issue. To prevent this issue, you can manage a specific resource policy. Please refer to the example below for managing a CloudWatch Log Group with a managed CloudWatch Log Resource Policy.
    18  //
    19  // ## Example Usage
    20  //
    21  // ### With Redacted Fields
    22  //
    23  // <!--Start PulumiCodeChooser -->
    24  // ```go
    25  // package main
    26  //
    27  // import (
    28  //
    29  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/wafv2"
    30  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    31  //
    32  // )
    33  //
    34  //	func main() {
    35  //		pulumi.Run(func(ctx *pulumi.Context) error {
    36  //			_, err := wafv2.NewWebAclLoggingConfiguration(ctx, "example", &wafv2.WebAclLoggingConfigurationArgs{
    37  //				LogDestinationConfigs: pulumi.StringArray{
    38  //					exampleAwsKinesisFirehoseDeliveryStream.Arn,
    39  //				},
    40  //				ResourceArn: pulumi.Any(exampleAwsWafv2WebAcl.Arn),
    41  //				RedactedFields: wafv2.WebAclLoggingConfigurationRedactedFieldArray{
    42  //					&wafv2.WebAclLoggingConfigurationRedactedFieldArgs{
    43  //						SingleHeader: &wafv2.WebAclLoggingConfigurationRedactedFieldSingleHeaderArgs{
    44  //							Name: pulumi.String("user-agent"),
    45  //						},
    46  //					},
    47  //				},
    48  //			})
    49  //			if err != nil {
    50  //				return err
    51  //			}
    52  //			return nil
    53  //		})
    54  //	}
    55  //
    56  // ```
    57  // <!--End PulumiCodeChooser -->
    58  //
    59  // ### With Logging Filter
    60  //
    61  // <!--Start PulumiCodeChooser -->
    62  // ```go
    63  // package main
    64  //
    65  // import (
    66  //
    67  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/wafv2"
    68  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    69  //
    70  // )
    71  //
    72  //	func main() {
    73  //		pulumi.Run(func(ctx *pulumi.Context) error {
    74  //			_, err := wafv2.NewWebAclLoggingConfiguration(ctx, "example", &wafv2.WebAclLoggingConfigurationArgs{
    75  //				LogDestinationConfigs: pulumi.StringArray{
    76  //					exampleAwsKinesisFirehoseDeliveryStream.Arn,
    77  //				},
    78  //				ResourceArn: pulumi.Any(exampleAwsWafv2WebAcl.Arn),
    79  //				LoggingFilter: &wafv2.WebAclLoggingConfigurationLoggingFilterArgs{
    80  //					DefaultBehavior: pulumi.String("KEEP"),
    81  //					Filters: wafv2.WebAclLoggingConfigurationLoggingFilterFilterArray{
    82  //						&wafv2.WebAclLoggingConfigurationLoggingFilterFilterArgs{
    83  //							Behavior: pulumi.String("DROP"),
    84  //							Conditions: wafv2.WebAclLoggingConfigurationLoggingFilterFilterConditionArray{
    85  //								&wafv2.WebAclLoggingConfigurationLoggingFilterFilterConditionArgs{
    86  //									ActionCondition: &wafv2.WebAclLoggingConfigurationLoggingFilterFilterConditionActionConditionArgs{
    87  //										Action: pulumi.String("COUNT"),
    88  //									},
    89  //								},
    90  //								&wafv2.WebAclLoggingConfigurationLoggingFilterFilterConditionArgs{
    91  //									LabelNameCondition: &wafv2.WebAclLoggingConfigurationLoggingFilterFilterConditionLabelNameConditionArgs{
    92  //										LabelName: pulumi.String("awswaf:111122223333:rulegroup:testRules:LabelNameZ"),
    93  //									},
    94  //								},
    95  //							},
    96  //							Requirement: pulumi.String("MEETS_ALL"),
    97  //						},
    98  //						&wafv2.WebAclLoggingConfigurationLoggingFilterFilterArgs{
    99  //							Behavior: pulumi.String("KEEP"),
   100  //							Conditions: wafv2.WebAclLoggingConfigurationLoggingFilterFilterConditionArray{
   101  //								&wafv2.WebAclLoggingConfigurationLoggingFilterFilterConditionArgs{
   102  //									ActionCondition: &wafv2.WebAclLoggingConfigurationLoggingFilterFilterConditionActionConditionArgs{
   103  //										Action: pulumi.String("ALLOW"),
   104  //									},
   105  //								},
   106  //							},
   107  //							Requirement: pulumi.String("MEETS_ANY"),
   108  //						},
   109  //					},
   110  //				},
   111  //			})
   112  //			if err != nil {
   113  //				return err
   114  //			}
   115  //			return nil
   116  //		})
   117  //	}
   118  //
   119  // ```
   120  // <!--End PulumiCodeChooser -->
   121  //
   122  // ## Import
   123  //
   124  // Using `pulumi import`, import WAFv2 Web ACL Logging Configurations using the ARN of the WAFv2 Web ACL. For example:
   125  //
   126  // ```sh
   127  // $ pulumi import aws:wafv2/webAclLoggingConfiguration:WebAclLoggingConfiguration example arn:aws:wafv2:us-west-2:123456789012:regional/webacl/test-logs/a1b2c3d4-5678-90ab-cdef
   128  // ```
   129  type WebAclLoggingConfiguration struct {
   130  	pulumi.CustomResourceState
   131  
   132  	// Configuration block that allows you to associate Amazon Kinesis Data Firehose, Cloudwatch Log log group, or S3 bucket Amazon Resource Names (ARNs) with the web ACL. **Note:** data firehose, log group, or bucket name **must** be prefixed with `aws-waf-logs-`, e.g. `aws-waf-logs-example-firehose`, `aws-waf-logs-example-log-group`, or `aws-waf-logs-example-bucket`.
   133  	LogDestinationConfigs pulumi.StringArrayOutput `pulumi:"logDestinationConfigs"`
   134  	// Configuration block that specifies which web requests are kept in the logs and which are dropped. It allows filtering based on the rule action and the web request labels applied by matching rules during web ACL evaluation. For more details, refer to the Logging Filter section below.
   135  	LoggingFilter WebAclLoggingConfigurationLoggingFilterPtrOutput `pulumi:"loggingFilter"`
   136  	// Configuration for parts of the request that you want to keep out of the logs. Up to 100 `redactedFields` blocks are supported. See Redacted Fields below for more details.
   137  	RedactedFields WebAclLoggingConfigurationRedactedFieldArrayOutput `pulumi:"redactedFields"`
   138  	// Amazon Resource Name (ARN) of the web ACL that you want to associate with `logDestinationConfigs`.
   139  	ResourceArn pulumi.StringOutput `pulumi:"resourceArn"`
   140  }
   141  
   142  // NewWebAclLoggingConfiguration registers a new resource with the given unique name, arguments, and options.
   143  func NewWebAclLoggingConfiguration(ctx *pulumi.Context,
   144  	name string, args *WebAclLoggingConfigurationArgs, opts ...pulumi.ResourceOption) (*WebAclLoggingConfiguration, error) {
   145  	if args == nil {
   146  		return nil, errors.New("missing one or more required arguments")
   147  	}
   148  
   149  	if args.LogDestinationConfigs == nil {
   150  		return nil, errors.New("invalid value for required argument 'LogDestinationConfigs'")
   151  	}
   152  	if args.ResourceArn == nil {
   153  		return nil, errors.New("invalid value for required argument 'ResourceArn'")
   154  	}
   155  	opts = internal.PkgResourceDefaultOpts(opts)
   156  	var resource WebAclLoggingConfiguration
   157  	err := ctx.RegisterResource("aws:wafv2/webAclLoggingConfiguration:WebAclLoggingConfiguration", name, args, &resource, opts...)
   158  	if err != nil {
   159  		return nil, err
   160  	}
   161  	return &resource, nil
   162  }
   163  
   164  // GetWebAclLoggingConfiguration gets an existing WebAclLoggingConfiguration resource's state with the given name, ID, and optional
   165  // state properties that are used to uniquely qualify the lookup (nil if not required).
   166  func GetWebAclLoggingConfiguration(ctx *pulumi.Context,
   167  	name string, id pulumi.IDInput, state *WebAclLoggingConfigurationState, opts ...pulumi.ResourceOption) (*WebAclLoggingConfiguration, error) {
   168  	var resource WebAclLoggingConfiguration
   169  	err := ctx.ReadResource("aws:wafv2/webAclLoggingConfiguration:WebAclLoggingConfiguration", name, id, state, &resource, opts...)
   170  	if err != nil {
   171  		return nil, err
   172  	}
   173  	return &resource, nil
   174  }
   175  
   176  // Input properties used for looking up and filtering WebAclLoggingConfiguration resources.
   177  type webAclLoggingConfigurationState struct {
   178  	// Configuration block that allows you to associate Amazon Kinesis Data Firehose, Cloudwatch Log log group, or S3 bucket Amazon Resource Names (ARNs) with the web ACL. **Note:** data firehose, log group, or bucket name **must** be prefixed with `aws-waf-logs-`, e.g. `aws-waf-logs-example-firehose`, `aws-waf-logs-example-log-group`, or `aws-waf-logs-example-bucket`.
   179  	LogDestinationConfigs []string `pulumi:"logDestinationConfigs"`
   180  	// Configuration block that specifies which web requests are kept in the logs and which are dropped. It allows filtering based on the rule action and the web request labels applied by matching rules during web ACL evaluation. For more details, refer to the Logging Filter section below.
   181  	LoggingFilter *WebAclLoggingConfigurationLoggingFilter `pulumi:"loggingFilter"`
   182  	// Configuration for parts of the request that you want to keep out of the logs. Up to 100 `redactedFields` blocks are supported. See Redacted Fields below for more details.
   183  	RedactedFields []WebAclLoggingConfigurationRedactedField `pulumi:"redactedFields"`
   184  	// Amazon Resource Name (ARN) of the web ACL that you want to associate with `logDestinationConfigs`.
   185  	ResourceArn *string `pulumi:"resourceArn"`
   186  }
   187  
   188  type WebAclLoggingConfigurationState struct {
   189  	// Configuration block that allows you to associate Amazon Kinesis Data Firehose, Cloudwatch Log log group, or S3 bucket Amazon Resource Names (ARNs) with the web ACL. **Note:** data firehose, log group, or bucket name **must** be prefixed with `aws-waf-logs-`, e.g. `aws-waf-logs-example-firehose`, `aws-waf-logs-example-log-group`, or `aws-waf-logs-example-bucket`.
   190  	LogDestinationConfigs pulumi.StringArrayInput
   191  	// Configuration block that specifies which web requests are kept in the logs and which are dropped. It allows filtering based on the rule action and the web request labels applied by matching rules during web ACL evaluation. For more details, refer to the Logging Filter section below.
   192  	LoggingFilter WebAclLoggingConfigurationLoggingFilterPtrInput
   193  	// Configuration for parts of the request that you want to keep out of the logs. Up to 100 `redactedFields` blocks are supported. See Redacted Fields below for more details.
   194  	RedactedFields WebAclLoggingConfigurationRedactedFieldArrayInput
   195  	// Amazon Resource Name (ARN) of the web ACL that you want to associate with `logDestinationConfigs`.
   196  	ResourceArn pulumi.StringPtrInput
   197  }
   198  
   199  func (WebAclLoggingConfigurationState) ElementType() reflect.Type {
   200  	return reflect.TypeOf((*webAclLoggingConfigurationState)(nil)).Elem()
   201  }
   202  
   203  type webAclLoggingConfigurationArgs struct {
   204  	// Configuration block that allows you to associate Amazon Kinesis Data Firehose, Cloudwatch Log log group, or S3 bucket Amazon Resource Names (ARNs) with the web ACL. **Note:** data firehose, log group, or bucket name **must** be prefixed with `aws-waf-logs-`, e.g. `aws-waf-logs-example-firehose`, `aws-waf-logs-example-log-group`, or `aws-waf-logs-example-bucket`.
   205  	LogDestinationConfigs []string `pulumi:"logDestinationConfigs"`
   206  	// Configuration block that specifies which web requests are kept in the logs and which are dropped. It allows filtering based on the rule action and the web request labels applied by matching rules during web ACL evaluation. For more details, refer to the Logging Filter section below.
   207  	LoggingFilter *WebAclLoggingConfigurationLoggingFilter `pulumi:"loggingFilter"`
   208  	// Configuration for parts of the request that you want to keep out of the logs. Up to 100 `redactedFields` blocks are supported. See Redacted Fields below for more details.
   209  	RedactedFields []WebAclLoggingConfigurationRedactedField `pulumi:"redactedFields"`
   210  	// Amazon Resource Name (ARN) of the web ACL that you want to associate with `logDestinationConfigs`.
   211  	ResourceArn string `pulumi:"resourceArn"`
   212  }
   213  
   214  // The set of arguments for constructing a WebAclLoggingConfiguration resource.
   215  type WebAclLoggingConfigurationArgs struct {
   216  	// Configuration block that allows you to associate Amazon Kinesis Data Firehose, Cloudwatch Log log group, or S3 bucket Amazon Resource Names (ARNs) with the web ACL. **Note:** data firehose, log group, or bucket name **must** be prefixed with `aws-waf-logs-`, e.g. `aws-waf-logs-example-firehose`, `aws-waf-logs-example-log-group`, or `aws-waf-logs-example-bucket`.
   217  	LogDestinationConfigs pulumi.StringArrayInput
   218  	// Configuration block that specifies which web requests are kept in the logs and which are dropped. It allows filtering based on the rule action and the web request labels applied by matching rules during web ACL evaluation. For more details, refer to the Logging Filter section below.
   219  	LoggingFilter WebAclLoggingConfigurationLoggingFilterPtrInput
   220  	// Configuration for parts of the request that you want to keep out of the logs. Up to 100 `redactedFields` blocks are supported. See Redacted Fields below for more details.
   221  	RedactedFields WebAclLoggingConfigurationRedactedFieldArrayInput
   222  	// Amazon Resource Name (ARN) of the web ACL that you want to associate with `logDestinationConfigs`.
   223  	ResourceArn pulumi.StringInput
   224  }
   225  
   226  func (WebAclLoggingConfigurationArgs) ElementType() reflect.Type {
   227  	return reflect.TypeOf((*webAclLoggingConfigurationArgs)(nil)).Elem()
   228  }
   229  
   230  type WebAclLoggingConfigurationInput interface {
   231  	pulumi.Input
   232  
   233  	ToWebAclLoggingConfigurationOutput() WebAclLoggingConfigurationOutput
   234  	ToWebAclLoggingConfigurationOutputWithContext(ctx context.Context) WebAclLoggingConfigurationOutput
   235  }
   236  
   237  func (*WebAclLoggingConfiguration) ElementType() reflect.Type {
   238  	return reflect.TypeOf((**WebAclLoggingConfiguration)(nil)).Elem()
   239  }
   240  
   241  func (i *WebAclLoggingConfiguration) ToWebAclLoggingConfigurationOutput() WebAclLoggingConfigurationOutput {
   242  	return i.ToWebAclLoggingConfigurationOutputWithContext(context.Background())
   243  }
   244  
   245  func (i *WebAclLoggingConfiguration) ToWebAclLoggingConfigurationOutputWithContext(ctx context.Context) WebAclLoggingConfigurationOutput {
   246  	return pulumi.ToOutputWithContext(ctx, i).(WebAclLoggingConfigurationOutput)
   247  }
   248  
   249  // WebAclLoggingConfigurationArrayInput is an input type that accepts WebAclLoggingConfigurationArray and WebAclLoggingConfigurationArrayOutput values.
   250  // You can construct a concrete instance of `WebAclLoggingConfigurationArrayInput` via:
   251  //
   252  //	WebAclLoggingConfigurationArray{ WebAclLoggingConfigurationArgs{...} }
   253  type WebAclLoggingConfigurationArrayInput interface {
   254  	pulumi.Input
   255  
   256  	ToWebAclLoggingConfigurationArrayOutput() WebAclLoggingConfigurationArrayOutput
   257  	ToWebAclLoggingConfigurationArrayOutputWithContext(context.Context) WebAclLoggingConfigurationArrayOutput
   258  }
   259  
   260  type WebAclLoggingConfigurationArray []WebAclLoggingConfigurationInput
   261  
   262  func (WebAclLoggingConfigurationArray) ElementType() reflect.Type {
   263  	return reflect.TypeOf((*[]*WebAclLoggingConfiguration)(nil)).Elem()
   264  }
   265  
   266  func (i WebAclLoggingConfigurationArray) ToWebAclLoggingConfigurationArrayOutput() WebAclLoggingConfigurationArrayOutput {
   267  	return i.ToWebAclLoggingConfigurationArrayOutputWithContext(context.Background())
   268  }
   269  
   270  func (i WebAclLoggingConfigurationArray) ToWebAclLoggingConfigurationArrayOutputWithContext(ctx context.Context) WebAclLoggingConfigurationArrayOutput {
   271  	return pulumi.ToOutputWithContext(ctx, i).(WebAclLoggingConfigurationArrayOutput)
   272  }
   273  
   274  // WebAclLoggingConfigurationMapInput is an input type that accepts WebAclLoggingConfigurationMap and WebAclLoggingConfigurationMapOutput values.
   275  // You can construct a concrete instance of `WebAclLoggingConfigurationMapInput` via:
   276  //
   277  //	WebAclLoggingConfigurationMap{ "key": WebAclLoggingConfigurationArgs{...} }
   278  type WebAclLoggingConfigurationMapInput interface {
   279  	pulumi.Input
   280  
   281  	ToWebAclLoggingConfigurationMapOutput() WebAclLoggingConfigurationMapOutput
   282  	ToWebAclLoggingConfigurationMapOutputWithContext(context.Context) WebAclLoggingConfigurationMapOutput
   283  }
   284  
   285  type WebAclLoggingConfigurationMap map[string]WebAclLoggingConfigurationInput
   286  
   287  func (WebAclLoggingConfigurationMap) ElementType() reflect.Type {
   288  	return reflect.TypeOf((*map[string]*WebAclLoggingConfiguration)(nil)).Elem()
   289  }
   290  
   291  func (i WebAclLoggingConfigurationMap) ToWebAclLoggingConfigurationMapOutput() WebAclLoggingConfigurationMapOutput {
   292  	return i.ToWebAclLoggingConfigurationMapOutputWithContext(context.Background())
   293  }
   294  
   295  func (i WebAclLoggingConfigurationMap) ToWebAclLoggingConfigurationMapOutputWithContext(ctx context.Context) WebAclLoggingConfigurationMapOutput {
   296  	return pulumi.ToOutputWithContext(ctx, i).(WebAclLoggingConfigurationMapOutput)
   297  }
   298  
   299  type WebAclLoggingConfigurationOutput struct{ *pulumi.OutputState }
   300  
   301  func (WebAclLoggingConfigurationOutput) ElementType() reflect.Type {
   302  	return reflect.TypeOf((**WebAclLoggingConfiguration)(nil)).Elem()
   303  }
   304  
   305  func (o WebAclLoggingConfigurationOutput) ToWebAclLoggingConfigurationOutput() WebAclLoggingConfigurationOutput {
   306  	return o
   307  }
   308  
   309  func (o WebAclLoggingConfigurationOutput) ToWebAclLoggingConfigurationOutputWithContext(ctx context.Context) WebAclLoggingConfigurationOutput {
   310  	return o
   311  }
   312  
   313  // Configuration block that allows you to associate Amazon Kinesis Data Firehose, Cloudwatch Log log group, or S3 bucket Amazon Resource Names (ARNs) with the web ACL. **Note:** data firehose, log group, or bucket name **must** be prefixed with `aws-waf-logs-`, e.g. `aws-waf-logs-example-firehose`, `aws-waf-logs-example-log-group`, or `aws-waf-logs-example-bucket`.
   314  func (o WebAclLoggingConfigurationOutput) LogDestinationConfigs() pulumi.StringArrayOutput {
   315  	return o.ApplyT(func(v *WebAclLoggingConfiguration) pulumi.StringArrayOutput { return v.LogDestinationConfigs }).(pulumi.StringArrayOutput)
   316  }
   317  
   318  // Configuration block that specifies which web requests are kept in the logs and which are dropped. It allows filtering based on the rule action and the web request labels applied by matching rules during web ACL evaluation. For more details, refer to the Logging Filter section below.
   319  func (o WebAclLoggingConfigurationOutput) LoggingFilter() WebAclLoggingConfigurationLoggingFilterPtrOutput {
   320  	return o.ApplyT(func(v *WebAclLoggingConfiguration) WebAclLoggingConfigurationLoggingFilterPtrOutput {
   321  		return v.LoggingFilter
   322  	}).(WebAclLoggingConfigurationLoggingFilterPtrOutput)
   323  }
   324  
   325  // Configuration for parts of the request that you want to keep out of the logs. Up to 100 `redactedFields` blocks are supported. See Redacted Fields below for more details.
   326  func (o WebAclLoggingConfigurationOutput) RedactedFields() WebAclLoggingConfigurationRedactedFieldArrayOutput {
   327  	return o.ApplyT(func(v *WebAclLoggingConfiguration) WebAclLoggingConfigurationRedactedFieldArrayOutput {
   328  		return v.RedactedFields
   329  	}).(WebAclLoggingConfigurationRedactedFieldArrayOutput)
   330  }
   331  
   332  // Amazon Resource Name (ARN) of the web ACL that you want to associate with `logDestinationConfigs`.
   333  func (o WebAclLoggingConfigurationOutput) ResourceArn() pulumi.StringOutput {
   334  	return o.ApplyT(func(v *WebAclLoggingConfiguration) pulumi.StringOutput { return v.ResourceArn }).(pulumi.StringOutput)
   335  }
   336  
   337  type WebAclLoggingConfigurationArrayOutput struct{ *pulumi.OutputState }
   338  
   339  func (WebAclLoggingConfigurationArrayOutput) ElementType() reflect.Type {
   340  	return reflect.TypeOf((*[]*WebAclLoggingConfiguration)(nil)).Elem()
   341  }
   342  
   343  func (o WebAclLoggingConfigurationArrayOutput) ToWebAclLoggingConfigurationArrayOutput() WebAclLoggingConfigurationArrayOutput {
   344  	return o
   345  }
   346  
   347  func (o WebAclLoggingConfigurationArrayOutput) ToWebAclLoggingConfigurationArrayOutputWithContext(ctx context.Context) WebAclLoggingConfigurationArrayOutput {
   348  	return o
   349  }
   350  
   351  func (o WebAclLoggingConfigurationArrayOutput) Index(i pulumi.IntInput) WebAclLoggingConfigurationOutput {
   352  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *WebAclLoggingConfiguration {
   353  		return vs[0].([]*WebAclLoggingConfiguration)[vs[1].(int)]
   354  	}).(WebAclLoggingConfigurationOutput)
   355  }
   356  
   357  type WebAclLoggingConfigurationMapOutput struct{ *pulumi.OutputState }
   358  
   359  func (WebAclLoggingConfigurationMapOutput) ElementType() reflect.Type {
   360  	return reflect.TypeOf((*map[string]*WebAclLoggingConfiguration)(nil)).Elem()
   361  }
   362  
   363  func (o WebAclLoggingConfigurationMapOutput) ToWebAclLoggingConfigurationMapOutput() WebAclLoggingConfigurationMapOutput {
   364  	return o
   365  }
   366  
   367  func (o WebAclLoggingConfigurationMapOutput) ToWebAclLoggingConfigurationMapOutputWithContext(ctx context.Context) WebAclLoggingConfigurationMapOutput {
   368  	return o
   369  }
   370  
   371  func (o WebAclLoggingConfigurationMapOutput) MapIndex(k pulumi.StringInput) WebAclLoggingConfigurationOutput {
   372  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *WebAclLoggingConfiguration {
   373  		return vs[0].(map[string]*WebAclLoggingConfiguration)[vs[1].(string)]
   374  	}).(WebAclLoggingConfigurationOutput)
   375  }
   376  
   377  func init() {
   378  	pulumi.RegisterInputType(reflect.TypeOf((*WebAclLoggingConfigurationInput)(nil)).Elem(), &WebAclLoggingConfiguration{})
   379  	pulumi.RegisterInputType(reflect.TypeOf((*WebAclLoggingConfigurationArrayInput)(nil)).Elem(), WebAclLoggingConfigurationArray{})
   380  	pulumi.RegisterInputType(reflect.TypeOf((*WebAclLoggingConfigurationMapInput)(nil)).Elem(), WebAclLoggingConfigurationMap{})
   381  	pulumi.RegisterOutputType(WebAclLoggingConfigurationOutput{})
   382  	pulumi.RegisterOutputType(WebAclLoggingConfigurationArrayOutput{})
   383  	pulumi.RegisterOutputType(WebAclLoggingConfigurationMapOutput{})
   384  }