All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.wafv2.inputs.WebAclLoggingConfigurationState Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.66.3
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.wafv2.inputs;

import com.pulumi.aws.wafv2.inputs.WebAclLoggingConfigurationLoggingFilterArgs;
import com.pulumi.aws.wafv2.inputs.WebAclLoggingConfigurationRedactedFieldArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class WebAclLoggingConfigurationState extends com.pulumi.resources.ResourceArgs {

    public static final WebAclLoggingConfigurationState Empty = new WebAclLoggingConfigurationState();

    /**
     * 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`.
     * 
     */
    @Import(name="logDestinationConfigs")
    private @Nullable Output> logDestinationConfigs;

    /**
     * @return 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`.
     * 
     */
    public Optional>> logDestinationConfigs() {
        return Optional.ofNullable(this.logDestinationConfigs);
    }

    /**
     * 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.
     * 
     */
    @Import(name="loggingFilter")
    private @Nullable Output loggingFilter;

    /**
     * @return 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.
     * 
     */
    public Optional> loggingFilter() {
        return Optional.ofNullable(this.loggingFilter);
    }

    /**
     * Configuration for parts of the request that you want to keep out of the logs. Up to 100 `redacted_fields` blocks are supported. See Redacted Fields below for more details.
     * 
     */
    @Import(name="redactedFields")
    private @Nullable Output> redactedFields;

    /**
     * @return Configuration for parts of the request that you want to keep out of the logs. Up to 100 `redacted_fields` blocks are supported. See Redacted Fields below for more details.
     * 
     */
    public Optional>> redactedFields() {
        return Optional.ofNullable(this.redactedFields);
    }

    /**
     * Amazon Resource Name (ARN) of the web ACL that you want to associate with `log_destination_configs`.
     * 
     */
    @Import(name="resourceArn")
    private @Nullable Output resourceArn;

    /**
     * @return Amazon Resource Name (ARN) of the web ACL that you want to associate with `log_destination_configs`.
     * 
     */
    public Optional> resourceArn() {
        return Optional.ofNullable(this.resourceArn);
    }

    private WebAclLoggingConfigurationState() {}

    private WebAclLoggingConfigurationState(WebAclLoggingConfigurationState $) {
        this.logDestinationConfigs = $.logDestinationConfigs;
        this.loggingFilter = $.loggingFilter;
        this.redactedFields = $.redactedFields;
        this.resourceArn = $.resourceArn;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(WebAclLoggingConfigurationState defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private WebAclLoggingConfigurationState $;

        public Builder() {
            $ = new WebAclLoggingConfigurationState();
        }

        public Builder(WebAclLoggingConfigurationState defaults) {
            $ = new WebAclLoggingConfigurationState(Objects.requireNonNull(defaults));
        }

        /**
         * @param logDestinationConfigs 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`.
         * 
         * @return builder
         * 
         */
        public Builder logDestinationConfigs(@Nullable Output> logDestinationConfigs) {
            $.logDestinationConfigs = logDestinationConfigs;
            return this;
        }

        /**
         * @param logDestinationConfigs 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`.
         * 
         * @return builder
         * 
         */
        public Builder logDestinationConfigs(List logDestinationConfigs) {
            return logDestinationConfigs(Output.of(logDestinationConfigs));
        }

        /**
         * @param logDestinationConfigs 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`.
         * 
         * @return builder
         * 
         */
        public Builder logDestinationConfigs(String... logDestinationConfigs) {
            return logDestinationConfigs(List.of(logDestinationConfigs));
        }

        /**
         * @param loggingFilter 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.
         * 
         * @return builder
         * 
         */
        public Builder loggingFilter(@Nullable Output loggingFilter) {
            $.loggingFilter = loggingFilter;
            return this;
        }

        /**
         * @param loggingFilter 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.
         * 
         * @return builder
         * 
         */
        public Builder loggingFilter(WebAclLoggingConfigurationLoggingFilterArgs loggingFilter) {
            return loggingFilter(Output.of(loggingFilter));
        }

        /**
         * @param redactedFields Configuration for parts of the request that you want to keep out of the logs. Up to 100 `redacted_fields` blocks are supported. See Redacted Fields below for more details.
         * 
         * @return builder
         * 
         */
        public Builder redactedFields(@Nullable Output> redactedFields) {
            $.redactedFields = redactedFields;
            return this;
        }

        /**
         * @param redactedFields Configuration for parts of the request that you want to keep out of the logs. Up to 100 `redacted_fields` blocks are supported. See Redacted Fields below for more details.
         * 
         * @return builder
         * 
         */
        public Builder redactedFields(List redactedFields) {
            return redactedFields(Output.of(redactedFields));
        }

        /**
         * @param redactedFields Configuration for parts of the request that you want to keep out of the logs. Up to 100 `redacted_fields` blocks are supported. See Redacted Fields below for more details.
         * 
         * @return builder
         * 
         */
        public Builder redactedFields(WebAclLoggingConfigurationRedactedFieldArgs... redactedFields) {
            return redactedFields(List.of(redactedFields));
        }

        /**
         * @param resourceArn Amazon Resource Name (ARN) of the web ACL that you want to associate with `log_destination_configs`.
         * 
         * @return builder
         * 
         */
        public Builder resourceArn(@Nullable Output resourceArn) {
            $.resourceArn = resourceArn;
            return this;
        }

        /**
         * @param resourceArn Amazon Resource Name (ARN) of the web ACL that you want to associate with `log_destination_configs`.
         * 
         * @return builder
         * 
         */
        public Builder resourceArn(String resourceArn) {
            return resourceArn(Output.of(resourceArn));
        }

        public WebAclLoggingConfigurationState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy