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

com.pulumi.azurenative.apimanagement.inputs.AdditionalLocationArgs 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.azurenative.apimanagement.inputs;

import com.pulumi.azurenative.apimanagement.enums.NatGatewayState;
import com.pulumi.azurenative.apimanagement.inputs.ApiManagementServiceSkuPropertiesArgs;
import com.pulumi.azurenative.apimanagement.inputs.VirtualNetworkConfigurationArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Description of an additional API Management resource location.
 * 
 */
public final class AdditionalLocationArgs extends com.pulumi.resources.ResourceArgs {

    public static final AdditionalLocationArgs Empty = new AdditionalLocationArgs();

    /**
     * Property only valid for an Api Management service deployed in multiple locations. This can be used to disable the gateway in this additional location.
     * 
     */
    @Import(name="disableGateway")
    private @Nullable Output disableGateway;

    /**
     * @return Property only valid for an Api Management service deployed in multiple locations. This can be used to disable the gateway in this additional location.
     * 
     */
    public Optional> disableGateway() {
        return Optional.ofNullable(this.disableGateway);
    }

    /**
     * The location name of the additional region among Azure Data center regions.
     * 
     */
    @Import(name="location", required=true)
    private Output location;

    /**
     * @return The location name of the additional region among Azure Data center regions.
     * 
     */
    public Output location() {
        return this.location;
    }

    /**
     * Property can be used to enable NAT Gateway for this API Management service.
     * 
     */
    @Import(name="natGatewayState")
    private @Nullable Output> natGatewayState;

    /**
     * @return Property can be used to enable NAT Gateway for this API Management service.
     * 
     */
    public Optional>> natGatewayState() {
        return Optional.ofNullable(this.natGatewayState);
    }

    /**
     * Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed service in the location. Supported only for Premium SKU being deployed in Virtual Network.
     * 
     */
    @Import(name="publicIpAddressId")
    private @Nullable Output publicIpAddressId;

    /**
     * @return Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed service in the location. Supported only for Premium SKU being deployed in Virtual Network.
     * 
     */
    public Optional> publicIpAddressId() {
        return Optional.ofNullable(this.publicIpAddressId);
    }

    /**
     * SKU properties of the API Management service.
     * 
     */
    @Import(name="sku", required=true)
    private Output sku;

    /**
     * @return SKU properties of the API Management service.
     * 
     */
    public Output sku() {
        return this.sku;
    }

    /**
     * Virtual network configuration for the location.
     * 
     */
    @Import(name="virtualNetworkConfiguration")
    private @Nullable Output virtualNetworkConfiguration;

    /**
     * @return Virtual network configuration for the location.
     * 
     */
    public Optional> virtualNetworkConfiguration() {
        return Optional.ofNullable(this.virtualNetworkConfiguration);
    }

    /**
     * A list of availability zones denoting where the resource needs to come from.
     * 
     */
    @Import(name="zones")
    private @Nullable Output> zones;

    /**
     * @return A list of availability zones denoting where the resource needs to come from.
     * 
     */
    public Optional>> zones() {
        return Optional.ofNullable(this.zones);
    }

    private AdditionalLocationArgs() {}

    private AdditionalLocationArgs(AdditionalLocationArgs $) {
        this.disableGateway = $.disableGateway;
        this.location = $.location;
        this.natGatewayState = $.natGatewayState;
        this.publicIpAddressId = $.publicIpAddressId;
        this.sku = $.sku;
        this.virtualNetworkConfiguration = $.virtualNetworkConfiguration;
        this.zones = $.zones;
    }

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

    public static final class Builder {
        private AdditionalLocationArgs $;

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

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

        /**
         * @param disableGateway Property only valid for an Api Management service deployed in multiple locations. This can be used to disable the gateway in this additional location.
         * 
         * @return builder
         * 
         */
        public Builder disableGateway(@Nullable Output disableGateway) {
            $.disableGateway = disableGateway;
            return this;
        }

        /**
         * @param disableGateway Property only valid for an Api Management service deployed in multiple locations. This can be used to disable the gateway in this additional location.
         * 
         * @return builder
         * 
         */
        public Builder disableGateway(Boolean disableGateway) {
            return disableGateway(Output.of(disableGateway));
        }

        /**
         * @param location The location name of the additional region among Azure Data center regions.
         * 
         * @return builder
         * 
         */
        public Builder location(Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The location name of the additional region among Azure Data center regions.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param natGatewayState Property can be used to enable NAT Gateway for this API Management service.
         * 
         * @return builder
         * 
         */
        public Builder natGatewayState(@Nullable Output> natGatewayState) {
            $.natGatewayState = natGatewayState;
            return this;
        }

        /**
         * @param natGatewayState Property can be used to enable NAT Gateway for this API Management service.
         * 
         * @return builder
         * 
         */
        public Builder natGatewayState(Either natGatewayState) {
            return natGatewayState(Output.of(natGatewayState));
        }

        /**
         * @param natGatewayState Property can be used to enable NAT Gateway for this API Management service.
         * 
         * @return builder
         * 
         */
        public Builder natGatewayState(String natGatewayState) {
            return natGatewayState(Either.ofLeft(natGatewayState));
        }

        /**
         * @param natGatewayState Property can be used to enable NAT Gateway for this API Management service.
         * 
         * @return builder
         * 
         */
        public Builder natGatewayState(NatGatewayState natGatewayState) {
            return natGatewayState(Either.ofRight(natGatewayState));
        }

        /**
         * @param publicIpAddressId Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed service in the location. Supported only for Premium SKU being deployed in Virtual Network.
         * 
         * @return builder
         * 
         */
        public Builder publicIpAddressId(@Nullable Output publicIpAddressId) {
            $.publicIpAddressId = publicIpAddressId;
            return this;
        }

        /**
         * @param publicIpAddressId Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed service in the location. Supported only for Premium SKU being deployed in Virtual Network.
         * 
         * @return builder
         * 
         */
        public Builder publicIpAddressId(String publicIpAddressId) {
            return publicIpAddressId(Output.of(publicIpAddressId));
        }

        /**
         * @param sku SKU properties of the API Management service.
         * 
         * @return builder
         * 
         */
        public Builder sku(Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku SKU properties of the API Management service.
         * 
         * @return builder
         * 
         */
        public Builder sku(ApiManagementServiceSkuPropertiesArgs sku) {
            return sku(Output.of(sku));
        }

        /**
         * @param virtualNetworkConfiguration Virtual network configuration for the location.
         * 
         * @return builder
         * 
         */
        public Builder virtualNetworkConfiguration(@Nullable Output virtualNetworkConfiguration) {
            $.virtualNetworkConfiguration = virtualNetworkConfiguration;
            return this;
        }

        /**
         * @param virtualNetworkConfiguration Virtual network configuration for the location.
         * 
         * @return builder
         * 
         */
        public Builder virtualNetworkConfiguration(VirtualNetworkConfigurationArgs virtualNetworkConfiguration) {
            return virtualNetworkConfiguration(Output.of(virtualNetworkConfiguration));
        }

        /**
         * @param zones A list of availability zones denoting where the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(@Nullable Output> zones) {
            $.zones = zones;
            return this;
        }

        /**
         * @param zones A list of availability zones denoting where the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(List zones) {
            return zones(Output.of(zones));
        }

        /**
         * @param zones A list of availability zones denoting where the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(String... zones) {
            return zones(List.of(zones));
        }

        public AdditionalLocationArgs build() {
            $.disableGateway = Codegen.booleanProp("disableGateway").output().arg($.disableGateway).def(false).getNullable();
            if ($.location == null) {
                throw new MissingRequiredPropertyException("AdditionalLocationArgs", "location");
            }
            $.natGatewayState = Codegen.stringProp("natGatewayState").left(NatGatewayState.class).output().arg($.natGatewayState).def("Disabled").getNullable();
            if ($.sku == null) {
                throw new MissingRequiredPropertyException("AdditionalLocationArgs", "sku");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy