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

com.pulumi.googlenative.accesscontextmanager.v1.inputs.EgressPolicyArgs Maven / Gradle / Ivy

// *** 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.googlenative.accesscontextmanager.v1.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.accesscontextmanager.v1.inputs.EgressFromArgs;
import com.pulumi.googlenative.accesscontextmanager.v1.inputs.EgressToArgs;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Policy for egress from perimeter. EgressPolicies match requests based on `egress_from` and `egress_to` stanzas. For an EgressPolicy to match, both `egress_from` and `egress_to` stanzas must be matched. If an EgressPolicy matches a request, the request is allowed to span the ServicePerimeter boundary. For example, an EgressPolicy can be used to allow VMs on networks within the ServicePerimeter to access a defined set of projects outside the perimeter in certain contexts (e.g. to read data from a Cloud Storage bucket or query against a BigQuery dataset). EgressPolicies are concerned with the *resources* that a request relates as well as the API services and API actions being used. They do not related to the direction of data movement. More detailed documentation for this concept can be found in the descriptions of EgressFrom and EgressTo.
 * 
 */
public final class EgressPolicyArgs extends com.pulumi.resources.ResourceArgs {

    public static final EgressPolicyArgs Empty = new EgressPolicyArgs();

    /**
     * Defines conditions on the source of a request causing this EgressPolicy to apply.
     * 
     */
    @Import(name="egressFrom")
    private @Nullable Output egressFrom;

    /**
     * @return Defines conditions on the source of a request causing this EgressPolicy to apply.
     * 
     */
    public Optional> egressFrom() {
        return Optional.ofNullable(this.egressFrom);
    }

    /**
     * Defines the conditions on the ApiOperation and destination resources that cause this EgressPolicy to apply.
     * 
     */
    @Import(name="egressTo")
    private @Nullable Output egressTo;

    /**
     * @return Defines the conditions on the ApiOperation and destination resources that cause this EgressPolicy to apply.
     * 
     */
    public Optional> egressTo() {
        return Optional.ofNullable(this.egressTo);
    }

    private EgressPolicyArgs() {}

    private EgressPolicyArgs(EgressPolicyArgs $) {
        this.egressFrom = $.egressFrom;
        this.egressTo = $.egressTo;
    }

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

    public static final class Builder {
        private EgressPolicyArgs $;

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

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

        /**
         * @param egressFrom Defines conditions on the source of a request causing this EgressPolicy to apply.
         * 
         * @return builder
         * 
         */
        public Builder egressFrom(@Nullable Output egressFrom) {
            $.egressFrom = egressFrom;
            return this;
        }

        /**
         * @param egressFrom Defines conditions on the source of a request causing this EgressPolicy to apply.
         * 
         * @return builder
         * 
         */
        public Builder egressFrom(EgressFromArgs egressFrom) {
            return egressFrom(Output.of(egressFrom));
        }

        /**
         * @param egressTo Defines the conditions on the ApiOperation and destination resources that cause this EgressPolicy to apply.
         * 
         * @return builder
         * 
         */
        public Builder egressTo(@Nullable Output egressTo) {
            $.egressTo = egressTo;
            return this;
        }

        /**
         * @param egressTo Defines the conditions on the ApiOperation and destination resources that cause this EgressPolicy to apply.
         * 
         * @return builder
         * 
         */
        public Builder egressTo(EgressToArgs egressTo) {
            return egressTo(Output.of(egressTo));
        }

        public EgressPolicyArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy