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

com.pulumi.alicloud.vpn.PbrRouteEntryArgs Maven / Gradle / Ivy

There is a newer version: 3.63.0-alpha.1727424957
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.alicloud.vpn;

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.Objects;


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

    public static final PbrRouteEntryArgs Empty = new PbrRouteEntryArgs();

    /**
     * The next hop of the policy-based route.
     * 
     */
    @Import(name="nextHop", required=true)
    private Output nextHop;

    /**
     * @return The next hop of the policy-based route.
     * 
     */
    public Output nextHop() {
        return this.nextHop;
    }

    /**
     * Whether to issue the destination route to the VPC.
     * 
     */
    @Import(name="publishVpc", required=true)
    private Output publishVpc;

    /**
     * @return Whether to issue the destination route to the VPC.
     * 
     */
    public Output publishVpc() {
        return this.publishVpc;
    }

    /**
     * The destination CIDR block of the policy-based route.
     * 
     */
    @Import(name="routeDest", required=true)
    private Output routeDest;

    /**
     * @return The destination CIDR block of the policy-based route.
     * 
     */
    public Output routeDest() {
        return this.routeDest;
    }

    /**
     * The source CIDR block of the policy-based route.
     * 
     */
    @Import(name="routeSource", required=true)
    private Output routeSource;

    /**
     * @return The source CIDR block of the policy-based route.
     * 
     */
    public Output routeSource() {
        return this.routeSource;
    }

    /**
     * The ID of the vpn gateway.
     * 
     */
    @Import(name="vpnGatewayId", required=true)
    private Output vpnGatewayId;

    /**
     * @return The ID of the vpn gateway.
     * 
     */
    public Output vpnGatewayId() {
        return this.vpnGatewayId;
    }

    /**
     * The weight of the policy-based route. Valid values: 0 and 100.
     * 
     */
    @Import(name="weight", required=true)
    private Output weight;

    /**
     * @return The weight of the policy-based route. Valid values: 0 and 100.
     * 
     */
    public Output weight() {
        return this.weight;
    }

    private PbrRouteEntryArgs() {}

    private PbrRouteEntryArgs(PbrRouteEntryArgs $) {
        this.nextHop = $.nextHop;
        this.publishVpc = $.publishVpc;
        this.routeDest = $.routeDest;
        this.routeSource = $.routeSource;
        this.vpnGatewayId = $.vpnGatewayId;
        this.weight = $.weight;
    }

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

    public static final class Builder {
        private PbrRouteEntryArgs $;

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

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

        /**
         * @param nextHop The next hop of the policy-based route.
         * 
         * @return builder
         * 
         */
        public Builder nextHop(Output nextHop) {
            $.nextHop = nextHop;
            return this;
        }

        /**
         * @param nextHop The next hop of the policy-based route.
         * 
         * @return builder
         * 
         */
        public Builder nextHop(String nextHop) {
            return nextHop(Output.of(nextHop));
        }

        /**
         * @param publishVpc Whether to issue the destination route to the VPC.
         * 
         * @return builder
         * 
         */
        public Builder publishVpc(Output publishVpc) {
            $.publishVpc = publishVpc;
            return this;
        }

        /**
         * @param publishVpc Whether to issue the destination route to the VPC.
         * 
         * @return builder
         * 
         */
        public Builder publishVpc(Boolean publishVpc) {
            return publishVpc(Output.of(publishVpc));
        }

        /**
         * @param routeDest The destination CIDR block of the policy-based route.
         * 
         * @return builder
         * 
         */
        public Builder routeDest(Output routeDest) {
            $.routeDest = routeDest;
            return this;
        }

        /**
         * @param routeDest The destination CIDR block of the policy-based route.
         * 
         * @return builder
         * 
         */
        public Builder routeDest(String routeDest) {
            return routeDest(Output.of(routeDest));
        }

        /**
         * @param routeSource The source CIDR block of the policy-based route.
         * 
         * @return builder
         * 
         */
        public Builder routeSource(Output routeSource) {
            $.routeSource = routeSource;
            return this;
        }

        /**
         * @param routeSource The source CIDR block of the policy-based route.
         * 
         * @return builder
         * 
         */
        public Builder routeSource(String routeSource) {
            return routeSource(Output.of(routeSource));
        }

        /**
         * @param vpnGatewayId The ID of the vpn gateway.
         * 
         * @return builder
         * 
         */
        public Builder vpnGatewayId(Output vpnGatewayId) {
            $.vpnGatewayId = vpnGatewayId;
            return this;
        }

        /**
         * @param vpnGatewayId The ID of the vpn gateway.
         * 
         * @return builder
         * 
         */
        public Builder vpnGatewayId(String vpnGatewayId) {
            return vpnGatewayId(Output.of(vpnGatewayId));
        }

        /**
         * @param weight The weight of the policy-based route. Valid values: 0 and 100.
         * 
         * @return builder
         * 
         */
        public Builder weight(Output weight) {
            $.weight = weight;
            return this;
        }

        /**
         * @param weight The weight of the policy-based route. Valid values: 0 and 100.
         * 
         * @return builder
         * 
         */
        public Builder weight(Integer weight) {
            return weight(Output.of(weight));
        }

        public PbrRouteEntryArgs build() {
            if ($.nextHop == null) {
                throw new MissingRequiredPropertyException("PbrRouteEntryArgs", "nextHop");
            }
            if ($.publishVpc == null) {
                throw new MissingRequiredPropertyException("PbrRouteEntryArgs", "publishVpc");
            }
            if ($.routeDest == null) {
                throw new MissingRequiredPropertyException("PbrRouteEntryArgs", "routeDest");
            }
            if ($.routeSource == null) {
                throw new MissingRequiredPropertyException("PbrRouteEntryArgs", "routeSource");
            }
            if ($.vpnGatewayId == null) {
                throw new MissingRequiredPropertyException("PbrRouteEntryArgs", "vpnGatewayId");
            }
            if ($.weight == null) {
                throw new MissingRequiredPropertyException("PbrRouteEntryArgs", "weight");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy