// *** 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;

import com.pulumi.aws.Utilities;
import com.pulumi.aws.wafv2.inputs.GetIpSetArgs;
import com.pulumi.aws.wafv2.inputs.GetIpSetPlainArgs;
import com.pulumi.aws.wafv2.inputs.GetRegexPatternSetArgs;
import com.pulumi.aws.wafv2.inputs.GetRegexPatternSetPlainArgs;
import com.pulumi.aws.wafv2.inputs.GetRuleGroupArgs;
import com.pulumi.aws.wafv2.inputs.GetRuleGroupPlainArgs;
import com.pulumi.aws.wafv2.inputs.GetWebAclArgs;
import com.pulumi.aws.wafv2.inputs.GetWebAclPlainArgs;
import com.pulumi.aws.wafv2.outputs.GetIpSetResult;
import com.pulumi.aws.wafv2.outputs.GetRegexPatternSetResult;
import com.pulumi.aws.wafv2.outputs.GetRuleGroupResult;
import com.pulumi.aws.wafv2.outputs.GetWebAclResult;
import com.pulumi.core.Output;
import com.pulumi.core.TypeShape;
import com.pulumi.deployment.Deployment;
import com.pulumi.deployment.InvokeOptions;
import java.util.concurrent.CompletableFuture;

public final class Wafv2Functions {
    /**
     * Retrieves the summary of a WAFv2 IP Set.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetIpSetArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getIpSet(GetIpSetArgs.builder()
     *             .name(&#34;some-ip-set&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetIpSetResult> getIpSet(GetIpSetArgs args) {
        return getIpSet(args, InvokeOptions.Empty);
    }
    /**
     * Retrieves the summary of a WAFv2 IP Set.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetIpSetArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getIpSet(GetIpSetArgs.builder()
     *             .name(&#34;some-ip-set&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetIpSetResult> getIpSetPlain(GetIpSetPlainArgs args) {
        return getIpSetPlain(args, InvokeOptions.Empty);
    }
    /**
     * Retrieves the summary of a WAFv2 IP Set.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetIpSetArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getIpSet(GetIpSetArgs.builder()
     *             .name(&#34;some-ip-set&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetIpSetResult> getIpSet(GetIpSetArgs args, InvokeOptions options) {
        return Deployment.getInstance().invoke("aws:wafv2/getIpSet:getIpSet", TypeShape.of(GetIpSetResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Retrieves the summary of a WAFv2 IP Set.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetIpSetArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getIpSet(GetIpSetArgs.builder()
     *             .name(&#34;some-ip-set&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetIpSetResult> getIpSetPlain(GetIpSetPlainArgs args, InvokeOptions options) {
        return Deployment.getInstance().invokeAsync("aws:wafv2/getIpSet:getIpSet", TypeShape.of(GetIpSetResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Retrieves the summary of a WAFv2 Regex Pattern Set.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetRegexPatternSetArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getRegexPatternSet(GetRegexPatternSetArgs.builder()
     *             .name(&#34;some-regex-pattern-set&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetRegexPatternSetResult> getRegexPatternSet(GetRegexPatternSetArgs args) {
        return getRegexPatternSet(args, InvokeOptions.Empty);
    }
    /**
     * Retrieves the summary of a WAFv2 Regex Pattern Set.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetRegexPatternSetArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getRegexPatternSet(GetRegexPatternSetArgs.builder()
     *             .name(&#34;some-regex-pattern-set&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetRegexPatternSetResult> getRegexPatternSetPlain(GetRegexPatternSetPlainArgs args) {
        return getRegexPatternSetPlain(args, InvokeOptions.Empty);
    }
    /**
     * Retrieves the summary of a WAFv2 Regex Pattern Set.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetRegexPatternSetArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getRegexPatternSet(GetRegexPatternSetArgs.builder()
     *             .name(&#34;some-regex-pattern-set&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetRegexPatternSetResult> getRegexPatternSet(GetRegexPatternSetArgs args, InvokeOptions options) {
        return Deployment.getInstance().invoke("aws:wafv2/getRegexPatternSet:getRegexPatternSet", TypeShape.of(GetRegexPatternSetResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Retrieves the summary of a WAFv2 Regex Pattern Set.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetRegexPatternSetArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getRegexPatternSet(GetRegexPatternSetArgs.builder()
     *             .name(&#34;some-regex-pattern-set&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetRegexPatternSetResult> getRegexPatternSetPlain(GetRegexPatternSetPlainArgs args, InvokeOptions options) {
        return Deployment.getInstance().invokeAsync("aws:wafv2/getRegexPatternSet:getRegexPatternSet", TypeShape.of(GetRegexPatternSetResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Retrieves the summary of a WAFv2 Rule Group.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetRuleGroupArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getRuleGroup(GetRuleGroupArgs.builder()
     *             .name(&#34;some-rule-group&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetRuleGroupResult> getRuleGroup(GetRuleGroupArgs args) {
        return getRuleGroup(args, InvokeOptions.Empty);
    }
    /**
     * Retrieves the summary of a WAFv2 Rule Group.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetRuleGroupArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getRuleGroup(GetRuleGroupArgs.builder()
     *             .name(&#34;some-rule-group&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetRuleGroupResult> getRuleGroupPlain(GetRuleGroupPlainArgs args) {
        return getRuleGroupPlain(args, InvokeOptions.Empty);
    }
    /**
     * Retrieves the summary of a WAFv2 Rule Group.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetRuleGroupArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getRuleGroup(GetRuleGroupArgs.builder()
     *             .name(&#34;some-rule-group&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetRuleGroupResult> getRuleGroup(GetRuleGroupArgs args, InvokeOptions options) {
        return Deployment.getInstance().invoke("aws:wafv2/getRuleGroup:getRuleGroup", TypeShape.of(GetRuleGroupResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Retrieves the summary of a WAFv2 Rule Group.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetRuleGroupArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getRuleGroup(GetRuleGroupArgs.builder()
     *             .name(&#34;some-rule-group&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetRuleGroupResult> getRuleGroupPlain(GetRuleGroupPlainArgs args, InvokeOptions options) {
        return Deployment.getInstance().invokeAsync("aws:wafv2/getRuleGroup:getRuleGroup", TypeShape.of(GetRuleGroupResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Retrieves the summary of a WAFv2 Web ACL.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetWebAclArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getWebAcl(GetWebAclArgs.builder()
     *             .name(&#34;some-web-acl&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetWebAclResult> getWebAcl(GetWebAclArgs args) {
        return getWebAcl(args, InvokeOptions.Empty);
    }
    /**
     * Retrieves the summary of a WAFv2 Web ACL.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetWebAclArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getWebAcl(GetWebAclArgs.builder()
     *             .name(&#34;some-web-acl&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetWebAclResult> getWebAclPlain(GetWebAclPlainArgs args) {
        return getWebAclPlain(args, InvokeOptions.Empty);
    }
    /**
     * Retrieves the summary of a WAFv2 Web ACL.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetWebAclArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getWebAcl(GetWebAclArgs.builder()
     *             .name(&#34;some-web-acl&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetWebAclResult> getWebAcl(GetWebAclArgs args, InvokeOptions options) {
        return Deployment.getInstance().invoke("aws:wafv2/getWebAcl:getWebAcl", TypeShape.of(GetWebAclResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Retrieves the summary of a WAFv2 Web ACL.
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.wafv2.Wafv2Functions;
     * import com.pulumi.aws.wafv2.inputs.GetWebAclArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var example = Wafv2Functions.getWebAcl(GetWebAclArgs.builder()
     *             .name(&#34;some-web-acl&#34;)
     *             .scope(&#34;REGIONAL&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetWebAclResult> getWebAclPlain(GetWebAclPlainArgs args, InvokeOptions options) {
        return Deployment.getInstance().invokeAsync("aws:wafv2/getWebAcl:getWebAcl", TypeShape.of(GetWebAclResult.class), args, Utilities.withVersion(options));
    }
}
