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

com.pulumi.azurenative.web.AppServicePlanRouteForVnetArgs Maven / Gradle / Ivy

There is a newer version: 2.72.0
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.azurenative.web;

import com.pulumi.azurenative.web.enums.RouteType;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final AppServicePlanRouteForVnetArgs Empty = new AppServicePlanRouteForVnetArgs();

    /**
     * The ending address for this route. If the start address is specified in CIDR notation, this must be omitted.
     * 
     */
    @Import(name="endAddress")
    private @Nullable Output endAddress;

    /**
     * @return The ending address for this route. If the start address is specified in CIDR notation, this must be omitted.
     * 
     */
    public Optional> endAddress() {
        return Optional.ofNullable(this.endAddress);
    }

    /**
     * Kind of resource.
     * 
     */
    @Import(name="kind")
    private @Nullable Output kind;

    /**
     * @return Kind of resource.
     * 
     */
    public Optional> kind() {
        return Optional.ofNullable(this.kind);
    }

    /**
     * Name of the App Service plan.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return Name of the App Service plan.
     * 
     */
    public Output name() {
        return this.name;
    }

    /**
     * Name of the resource group to which the resource belongs.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return Name of the resource group to which the resource belongs.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Name of the Virtual Network route.
     * 
     */
    @Import(name="routeName")
    private @Nullable Output routeName;

    /**
     * @return Name of the Virtual Network route.
     * 
     */
    public Optional> routeName() {
        return Optional.ofNullable(this.routeName);
    }

    /**
     * The type of route this is:
     * DEFAULT - By default, every app has routes to the local address ranges specified by RFC1918
     * INHERITED - Routes inherited from the real Virtual Network routes
     * STATIC - Static route set on the app only
     * 
     * These values will be used for syncing an app's routes with those from a Virtual Network.
     * 
     */
    @Import(name="routeType")
    private @Nullable Output> routeType;

    /**
     * @return The type of route this is:
     * DEFAULT - By default, every app has routes to the local address ranges specified by RFC1918
     * INHERITED - Routes inherited from the real Virtual Network routes
     * STATIC - Static route set on the app only
     * 
     * These values will be used for syncing an app's routes with those from a Virtual Network.
     * 
     */
    public Optional>> routeType() {
        return Optional.ofNullable(this.routeType);
    }

    /**
     * The starting address for this route. This may also include a CIDR notation, in which case the end address must not be specified.
     * 
     */
    @Import(name="startAddress")
    private @Nullable Output startAddress;

    /**
     * @return The starting address for this route. This may also include a CIDR notation, in which case the end address must not be specified.
     * 
     */
    public Optional> startAddress() {
        return Optional.ofNullable(this.startAddress);
    }

    /**
     * Name of the Virtual Network.
     * 
     */
    @Import(name="vnetName", required=true)
    private Output vnetName;

    /**
     * @return Name of the Virtual Network.
     * 
     */
    public Output vnetName() {
        return this.vnetName;
    }

    private AppServicePlanRouteForVnetArgs() {}

    private AppServicePlanRouteForVnetArgs(AppServicePlanRouteForVnetArgs $) {
        this.endAddress = $.endAddress;
        this.kind = $.kind;
        this.name = $.name;
        this.resourceGroupName = $.resourceGroupName;
        this.routeName = $.routeName;
        this.routeType = $.routeType;
        this.startAddress = $.startAddress;
        this.vnetName = $.vnetName;
    }

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

    public static final class Builder {
        private AppServicePlanRouteForVnetArgs $;

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

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

        /**
         * @param endAddress The ending address for this route. If the start address is specified in CIDR notation, this must be omitted.
         * 
         * @return builder
         * 
         */
        public Builder endAddress(@Nullable Output endAddress) {
            $.endAddress = endAddress;
            return this;
        }

        /**
         * @param endAddress The ending address for this route. If the start address is specified in CIDR notation, this must be omitted.
         * 
         * @return builder
         * 
         */
        public Builder endAddress(String endAddress) {
            return endAddress(Output.of(endAddress));
        }

        /**
         * @param kind Kind of resource.
         * 
         * @return builder
         * 
         */
        public Builder kind(@Nullable Output kind) {
            $.kind = kind;
            return this;
        }

        /**
         * @param kind Kind of resource.
         * 
         * @return builder
         * 
         */
        public Builder kind(String kind) {
            return kind(Output.of(kind));
        }

        /**
         * @param name Name of the App Service plan.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Name of the App Service plan.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param resourceGroupName Name of the resource group to which the resource belongs.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName Name of the resource group to which the resource belongs.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param routeName Name of the Virtual Network route.
         * 
         * @return builder
         * 
         */
        public Builder routeName(@Nullable Output routeName) {
            $.routeName = routeName;
            return this;
        }

        /**
         * @param routeName Name of the Virtual Network route.
         * 
         * @return builder
         * 
         */
        public Builder routeName(String routeName) {
            return routeName(Output.of(routeName));
        }

        /**
         * @param routeType The type of route this is:
         * DEFAULT - By default, every app has routes to the local address ranges specified by RFC1918
         * INHERITED - Routes inherited from the real Virtual Network routes
         * STATIC - Static route set on the app only
         * 
         * These values will be used for syncing an app's routes with those from a Virtual Network.
         * 
         * @return builder
         * 
         */
        public Builder routeType(@Nullable Output> routeType) {
            $.routeType = routeType;
            return this;
        }

        /**
         * @param routeType The type of route this is:
         * DEFAULT - By default, every app has routes to the local address ranges specified by RFC1918
         * INHERITED - Routes inherited from the real Virtual Network routes
         * STATIC - Static route set on the app only
         * 
         * These values will be used for syncing an app's routes with those from a Virtual Network.
         * 
         * @return builder
         * 
         */
        public Builder routeType(Either routeType) {
            return routeType(Output.of(routeType));
        }

        /**
         * @param routeType The type of route this is:
         * DEFAULT - By default, every app has routes to the local address ranges specified by RFC1918
         * INHERITED - Routes inherited from the real Virtual Network routes
         * STATIC - Static route set on the app only
         * 
         * These values will be used for syncing an app's routes with those from a Virtual Network.
         * 
         * @return builder
         * 
         */
        public Builder routeType(String routeType) {
            return routeType(Either.ofLeft(routeType));
        }

        /**
         * @param routeType The type of route this is:
         * DEFAULT - By default, every app has routes to the local address ranges specified by RFC1918
         * INHERITED - Routes inherited from the real Virtual Network routes
         * STATIC - Static route set on the app only
         * 
         * These values will be used for syncing an app's routes with those from a Virtual Network.
         * 
         * @return builder
         * 
         */
        public Builder routeType(RouteType routeType) {
            return routeType(Either.ofRight(routeType));
        }

        /**
         * @param startAddress The starting address for this route. This may also include a CIDR notation, in which case the end address must not be specified.
         * 
         * @return builder
         * 
         */
        public Builder startAddress(@Nullable Output startAddress) {
            $.startAddress = startAddress;
            return this;
        }

        /**
         * @param startAddress The starting address for this route. This may also include a CIDR notation, in which case the end address must not be specified.
         * 
         * @return builder
         * 
         */
        public Builder startAddress(String startAddress) {
            return startAddress(Output.of(startAddress));
        }

        /**
         * @param vnetName Name of the Virtual Network.
         * 
         * @return builder
         * 
         */
        public Builder vnetName(Output vnetName) {
            $.vnetName = vnetName;
            return this;
        }

        /**
         * @param vnetName Name of the Virtual Network.
         * 
         * @return builder
         * 
         */
        public Builder vnetName(String vnetName) {
            return vnetName(Output.of(vnetName));
        }

        public AppServicePlanRouteForVnetArgs build() {
            if ($.name == null) {
                throw new MissingRequiredPropertyException("AppServicePlanRouteForVnetArgs", "name");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("AppServicePlanRouteForVnetArgs", "resourceGroupName");
            }
            if ($.vnetName == null) {
                throw new MissingRequiredPropertyException("AppServicePlanRouteForVnetArgs", "vnetName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy