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

com.pulumi.cloudngfwaws.SecurityRuleArgs Maven / Gradle / Ivy

The 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.cloudngfwaws;

import com.pulumi.cloudngfwaws.inputs.SecurityRuleCategoryArgs;
import com.pulumi.cloudngfwaws.inputs.SecurityRuleDestinationArgs;
import com.pulumi.cloudngfwaws.inputs.SecurityRuleSourceArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final SecurityRuleArgs Empty = new SecurityRuleArgs();

    /**
     * The action to take. Valid values are `Allow`, `DenySilent`, `DenyResetServer`, or `DenyResetBoth`.
     * 
     */
    @Import(name="action", required=true)
    private Output action;

    /**
     * @return The action to take. Valid values are `Allow`, `DenySilent`, `DenyResetServer`, or `DenyResetBoth`.
     * 
     */
    public Output action() {
        return this.action;
    }

    /**
     * The list of applications.
     * 
     */
    @Import(name="applications", required=true)
    private Output> applications;

    /**
     * @return The list of applications.
     * 
     */
    public Output> applications() {
        return this.applications;
    }

    /**
     * The audit comment.
     * 
     */
    @Import(name="auditComment")
    private @Nullable Output auditComment;

    /**
     * @return The audit comment.
     * 
     */
    public Optional> auditComment() {
        return Optional.ofNullable(this.auditComment);
    }

    /**
     * The category spec.
     * 
     */
    @Import(name="category", required=true)
    private Output category;

    /**
     * @return The category spec.
     * 
     */
    public Output category() {
        return this.category;
    }

    /**
     * Decryption rule type. Valid values are ``or`SSLOutboundInspection`.
     * 
     */
    @Import(name="decryptionRuleType")
    private @Nullable Output decryptionRuleType;

    /**
     * @return Decryption rule type. Valid values are ``or`SSLOutboundInspection`.
     * 
     */
    public Optional> decryptionRuleType() {
        return Optional.ofNullable(this.decryptionRuleType);
    }

    /**
     * The description.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return The description.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The destination spec.
     * 
     */
    @Import(name="destination", required=true)
    private Output destination;

    /**
     * @return The destination spec.
     * 
     */
    public Output destination() {
        return this.destination;
    }

    /**
     * Set to false to disable this rule. Defaults to `true`.
     * 
     */
    @Import(name="enabled")
    private @Nullable Output enabled;

    /**
     * @return Set to false to disable this rule. Defaults to `true`.
     * 
     */
    public Optional> enabled() {
        return Optional.ofNullable(this.enabled);
    }

    /**
     * Enable logging at end. Defaults to `true`.
     * 
     */
    @Import(name="logging")
    private @Nullable Output logging;

    /**
     * @return Enable logging at end. Defaults to `true`.
     * 
     */
    public Optional> logging() {
        return Optional.ofNullable(this.logging);
    }

    /**
     * The name.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Negate the destination definition.
     * 
     */
    @Import(name="negateDestination")
    private @Nullable Output negateDestination;

    /**
     * @return Negate the destination definition.
     * 
     */
    public Optional> negateDestination() {
        return Optional.ofNullable(this.negateDestination);
    }

    /**
     * Negate the source definition.
     * 
     */
    @Import(name="negateSource")
    private @Nullable Output negateSource;

    /**
     * @return Negate the source definition.
     * 
     */
    public Optional> negateSource() {
        return Optional.ofNullable(this.negateSource);
    }

    /**
     * The rule priority.
     * 
     */
    @Import(name="priority", required=true)
    private Output priority;

    /**
     * @return The rule priority.
     * 
     */
    public Output priority() {
        return this.priority;
    }

    /**
     * Protocol port list.
     * 
     */
    @Import(name="protPortLists")
    private @Nullable Output> protPortLists;

    /**
     * @return Protocol port list.
     * 
     */
    public Optional>> protPortLists() {
        return Optional.ofNullable(this.protPortLists);
    }

    /**
     * The protocol.
     * 
     */
    @Import(name="protocol")
    private @Nullable Output protocol;

    /**
     * @return The protocol.
     * 
     */
    public Optional> protocol() {
        return Optional.ofNullable(this.protocol);
    }

    /**
     * The rulebase. Valid values are `PreRule`, `PostRule`, or `LocalRule`. Defaults to `PreRule`.
     * 
     */
    @Import(name="ruleList")
    private @Nullable Output ruleList;

    /**
     * @return The rulebase. Valid values are `PreRule`, `PostRule`, or `LocalRule`. Defaults to `PreRule`.
     * 
     */
    public Optional> ruleList() {
        return Optional.ofNullable(this.ruleList);
    }

    /**
     * The rulestack.
     * 
     */
    @Import(name="rulestack", required=true)
    private Output rulestack;

    /**
     * @return The rulestack.
     * 
     */
    public Output rulestack() {
        return this.rulestack;
    }

    /**
     * The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.
     * 
     */
    @Import(name="scope")
    private @Nullable Output scope;

    /**
     * @return The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.
     * 
     */
    public Optional> scope() {
        return Optional.ofNullable(this.scope);
    }

    /**
     * The source spec.
     * 
     */
    @Import(name="source", required=true)
    private Output source;

    /**
     * @return The source spec.
     * 
     */
    public Output source() {
        return this.source;
    }

    /**
     * The tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return The tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private SecurityRuleArgs() {}

    private SecurityRuleArgs(SecurityRuleArgs $) {
        this.action = $.action;
        this.applications = $.applications;
        this.auditComment = $.auditComment;
        this.category = $.category;
        this.decryptionRuleType = $.decryptionRuleType;
        this.description = $.description;
        this.destination = $.destination;
        this.enabled = $.enabled;
        this.logging = $.logging;
        this.name = $.name;
        this.negateDestination = $.negateDestination;
        this.negateSource = $.negateSource;
        this.priority = $.priority;
        this.protPortLists = $.protPortLists;
        this.protocol = $.protocol;
        this.ruleList = $.ruleList;
        this.rulestack = $.rulestack;
        this.scope = $.scope;
        this.source = $.source;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private SecurityRuleArgs $;

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

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

        /**
         * @param action The action to take. Valid values are `Allow`, `DenySilent`, `DenyResetServer`, or `DenyResetBoth`.
         * 
         * @return builder
         * 
         */
        public Builder action(Output action) {
            $.action = action;
            return this;
        }

        /**
         * @param action The action to take. Valid values are `Allow`, `DenySilent`, `DenyResetServer`, or `DenyResetBoth`.
         * 
         * @return builder
         * 
         */
        public Builder action(String action) {
            return action(Output.of(action));
        }

        /**
         * @param applications The list of applications.
         * 
         * @return builder
         * 
         */
        public Builder applications(Output> applications) {
            $.applications = applications;
            return this;
        }

        /**
         * @param applications The list of applications.
         * 
         * @return builder
         * 
         */
        public Builder applications(List applications) {
            return applications(Output.of(applications));
        }

        /**
         * @param applications The list of applications.
         * 
         * @return builder
         * 
         */
        public Builder applications(String... applications) {
            return applications(List.of(applications));
        }

        /**
         * @param auditComment The audit comment.
         * 
         * @return builder
         * 
         */
        public Builder auditComment(@Nullable Output auditComment) {
            $.auditComment = auditComment;
            return this;
        }

        /**
         * @param auditComment The audit comment.
         * 
         * @return builder
         * 
         */
        public Builder auditComment(String auditComment) {
            return auditComment(Output.of(auditComment));
        }

        /**
         * @param category The category spec.
         * 
         * @return builder
         * 
         */
        public Builder category(Output category) {
            $.category = category;
            return this;
        }

        /**
         * @param category The category spec.
         * 
         * @return builder
         * 
         */
        public Builder category(SecurityRuleCategoryArgs category) {
            return category(Output.of(category));
        }

        /**
         * @param decryptionRuleType Decryption rule type. Valid values are ``or`SSLOutboundInspection`.
         * 
         * @return builder
         * 
         */
        public Builder decryptionRuleType(@Nullable Output decryptionRuleType) {
            $.decryptionRuleType = decryptionRuleType;
            return this;
        }

        /**
         * @param decryptionRuleType Decryption rule type. Valid values are ``or`SSLOutboundInspection`.
         * 
         * @return builder
         * 
         */
        public Builder decryptionRuleType(String decryptionRuleType) {
            return decryptionRuleType(Output.of(decryptionRuleType));
        }

        /**
         * @param description The description.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description The description.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param destination The destination spec.
         * 
         * @return builder
         * 
         */
        public Builder destination(Output destination) {
            $.destination = destination;
            return this;
        }

        /**
         * @param destination The destination spec.
         * 
         * @return builder
         * 
         */
        public Builder destination(SecurityRuleDestinationArgs destination) {
            return destination(Output.of(destination));
        }

        /**
         * @param enabled Set to false to disable this rule. Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder enabled(@Nullable Output enabled) {
            $.enabled = enabled;
            return this;
        }

        /**
         * @param enabled Set to false to disable this rule. Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder enabled(Boolean enabled) {
            return enabled(Output.of(enabled));
        }

        /**
         * @param logging Enable logging at end. Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder logging(@Nullable Output logging) {
            $.logging = logging;
            return this;
        }

        /**
         * @param logging Enable logging at end. Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder logging(Boolean logging) {
            return logging(Output.of(logging));
        }

        /**
         * @param name The name.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param negateDestination Negate the destination definition.
         * 
         * @return builder
         * 
         */
        public Builder negateDestination(@Nullable Output negateDestination) {
            $.negateDestination = negateDestination;
            return this;
        }

        /**
         * @param negateDestination Negate the destination definition.
         * 
         * @return builder
         * 
         */
        public Builder negateDestination(Boolean negateDestination) {
            return negateDestination(Output.of(negateDestination));
        }

        /**
         * @param negateSource Negate the source definition.
         * 
         * @return builder
         * 
         */
        public Builder negateSource(@Nullable Output negateSource) {
            $.negateSource = negateSource;
            return this;
        }

        /**
         * @param negateSource Negate the source definition.
         * 
         * @return builder
         * 
         */
        public Builder negateSource(Boolean negateSource) {
            return negateSource(Output.of(negateSource));
        }

        /**
         * @param priority The rule priority.
         * 
         * @return builder
         * 
         */
        public Builder priority(Output priority) {
            $.priority = priority;
            return this;
        }

        /**
         * @param priority The rule priority.
         * 
         * @return builder
         * 
         */
        public Builder priority(Integer priority) {
            return priority(Output.of(priority));
        }

        /**
         * @param protPortLists Protocol port list.
         * 
         * @return builder
         * 
         */
        public Builder protPortLists(@Nullable Output> protPortLists) {
            $.protPortLists = protPortLists;
            return this;
        }

        /**
         * @param protPortLists Protocol port list.
         * 
         * @return builder
         * 
         */
        public Builder protPortLists(List protPortLists) {
            return protPortLists(Output.of(protPortLists));
        }

        /**
         * @param protPortLists Protocol port list.
         * 
         * @return builder
         * 
         */
        public Builder protPortLists(String... protPortLists) {
            return protPortLists(List.of(protPortLists));
        }

        /**
         * @param protocol The protocol.
         * 
         * @return builder
         * 
         */
        public Builder protocol(@Nullable Output protocol) {
            $.protocol = protocol;
            return this;
        }

        /**
         * @param protocol The protocol.
         * 
         * @return builder
         * 
         */
        public Builder protocol(String protocol) {
            return protocol(Output.of(protocol));
        }

        /**
         * @param ruleList The rulebase. Valid values are `PreRule`, `PostRule`, or `LocalRule`. Defaults to `PreRule`.
         * 
         * @return builder
         * 
         */
        public Builder ruleList(@Nullable Output ruleList) {
            $.ruleList = ruleList;
            return this;
        }

        /**
         * @param ruleList The rulebase. Valid values are `PreRule`, `PostRule`, or `LocalRule`. Defaults to `PreRule`.
         * 
         * @return builder
         * 
         */
        public Builder ruleList(String ruleList) {
            return ruleList(Output.of(ruleList));
        }

        /**
         * @param rulestack The rulestack.
         * 
         * @return builder
         * 
         */
        public Builder rulestack(Output rulestack) {
            $.rulestack = rulestack;
            return this;
        }

        /**
         * @param rulestack The rulestack.
         * 
         * @return builder
         * 
         */
        public Builder rulestack(String rulestack) {
            return rulestack(Output.of(rulestack));
        }

        /**
         * @param scope The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.
         * 
         * @return builder
         * 
         */
        public Builder scope(@Nullable Output scope) {
            $.scope = scope;
            return this;
        }

        /**
         * @param scope The rulestack's scope. A local rulestack will require that you've retrieved a LRA JWT. A global rulestack will require that you've retrieved a GRA JWT. Valid values are `Local` or `Global`. Defaults to `Local`.
         * 
         * @return builder
         * 
         */
        public Builder scope(String scope) {
            return scope(Output.of(scope));
        }

        /**
         * @param source The source spec.
         * 
         * @return builder
         * 
         */
        public Builder source(Output source) {
            $.source = source;
            return this;
        }

        /**
         * @param source The source spec.
         * 
         * @return builder
         * 
         */
        public Builder source(SecurityRuleSourceArgs source) {
            return source(Output.of(source));
        }

        /**
         * @param tags The tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags The tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        public SecurityRuleArgs build() {
            if ($.action == null) {
                throw new MissingRequiredPropertyException("SecurityRuleArgs", "action");
            }
            if ($.applications == null) {
                throw new MissingRequiredPropertyException("SecurityRuleArgs", "applications");
            }
            if ($.category == null) {
                throw new MissingRequiredPropertyException("SecurityRuleArgs", "category");
            }
            if ($.destination == null) {
                throw new MissingRequiredPropertyException("SecurityRuleArgs", "destination");
            }
            if ($.priority == null) {
                throw new MissingRequiredPropertyException("SecurityRuleArgs", "priority");
            }
            if ($.rulestack == null) {
                throw new MissingRequiredPropertyException("SecurityRuleArgs", "rulestack");
            }
            if ($.source == null) {
                throw new MissingRequiredPropertyException("SecurityRuleArgs", "source");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy