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

com.pulumi.azure.network.inputs.VirtualNetworkState 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.azure.network.inputs;

import com.pulumi.azure.network.inputs.VirtualNetworkDdosProtectionPlanArgs;
import com.pulumi.azure.network.inputs.VirtualNetworkEncryptionArgs;
import com.pulumi.azure.network.inputs.VirtualNetworkSubnetArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
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 VirtualNetworkState extends com.pulumi.resources.ResourceArgs {

    public static final VirtualNetworkState Empty = new VirtualNetworkState();

    /**
     * The address space that is used the virtual network. You can supply more than one address space.
     * 
     */
    @Import(name="addressSpaces")
    private @Nullable Output> addressSpaces;

    /**
     * @return The address space that is used the virtual network. You can supply more than one address space.
     * 
     */
    public Optional>> addressSpaces() {
        return Optional.ofNullable(this.addressSpaces);
    }

    /**
     * The BGP community attribute in format `<as-number>:<community-value>`.
     * 
     * > **NOTE** The `as-number` segment is the Microsoft ASN, which is always `12076` for now.
     * 
     */
    @Import(name="bgpCommunity")
    private @Nullable Output bgpCommunity;

    /**
     * @return The BGP community attribute in format `<as-number>:<community-value>`.
     * 
     * > **NOTE** The `as-number` segment is the Microsoft ASN, which is always `12076` for now.
     * 
     */
    public Optional> bgpCommunity() {
        return Optional.ofNullable(this.bgpCommunity);
    }

    /**
     * A `ddos_protection_plan` block as documented below.
     * 
     */
    @Import(name="ddosProtectionPlan")
    private @Nullable Output ddosProtectionPlan;

    /**
     * @return A `ddos_protection_plan` block as documented below.
     * 
     */
    public Optional> ddosProtectionPlan() {
        return Optional.ofNullable(this.ddosProtectionPlan);
    }

    /**
     * List of IP addresses of DNS servers
     * 
     * > **NOTE** Since `dns_servers` can be configured both inline and via the separate `azure.network.VirtualNetworkDnsServers` resource, we have to explicitly set it to empty slice (`[]`) to remove it.
     * 
     */
    @Import(name="dnsServers")
    private @Nullable Output> dnsServers;

    /**
     * @return List of IP addresses of DNS servers
     * 
     * > **NOTE** Since `dns_servers` can be configured both inline and via the separate `azure.network.VirtualNetworkDnsServers` resource, we have to explicitly set it to empty slice (`[]`) to remove it.
     * 
     */
    public Optional>> dnsServers() {
        return Optional.ofNullable(this.dnsServers);
    }

    /**
     * Specifies the Edge Zone within the Azure Region where this Virtual Network should exist. Changing this forces a new Virtual Network to be created.
     * 
     */
    @Import(name="edgeZone")
    private @Nullable Output edgeZone;

    /**
     * @return Specifies the Edge Zone within the Azure Region where this Virtual Network should exist. Changing this forces a new Virtual Network to be created.
     * 
     */
    public Optional> edgeZone() {
        return Optional.ofNullable(this.edgeZone);
    }

    /**
     * A `encryption` block as defined below.
     * 
     */
    @Import(name="encryption")
    private @Nullable Output encryption;

    /**
     * @return A `encryption` block as defined below.
     * 
     */
    public Optional> encryption() {
        return Optional.ofNullable(this.encryption);
    }

    /**
     * The flow timeout in minutes for the Virtual Network, which is used to enable connection tracking for intra-VM flows. Possible values are between `4` and `30` minutes.
     * 
     */
    @Import(name="flowTimeoutInMinutes")
    private @Nullable Output flowTimeoutInMinutes;

    /**
     * @return The flow timeout in minutes for the Virtual Network, which is used to enable connection tracking for intra-VM flows. Possible values are between `4` and `30` minutes.
     * 
     */
    public Optional> flowTimeoutInMinutes() {
        return Optional.ofNullable(this.flowTimeoutInMinutes);
    }

    /**
     * The GUID of the virtual network.
     * 
     */
    @Import(name="guid")
    private @Nullable Output guid;

    /**
     * @return The GUID of the virtual network.
     * 
     */
    public Optional> guid() {
        return Optional.ofNullable(this.guid);
    }

    /**
     * The location/region where the virtual network is created. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The location/region where the virtual network is created. Changing this forces a new resource to be created.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * The name of the virtual network. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name of the virtual network. Changing this forces a new resource to be created.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The name of the resource group in which to create the virtual network. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="resourceGroupName")
    private @Nullable Output resourceGroupName;

    /**
     * @return The name of the resource group in which to create the virtual network. Changing this forces a new resource to be created.
     * 
     */
    public Optional> resourceGroupName() {
        return Optional.ofNullable(this.resourceGroupName);
    }

    /**
     * Can be specified multiple times to define multiple subnets. Each `subnet` block supports fields documented below.
     * 
     * > **NOTE** Since `subnet` can be configured both inline and via the separate `azure.network.Subnet` resource, we have to explicitly set it to empty slice (`[]`) to remove it.
     * 
     */
    @Import(name="subnets")
    private @Nullable Output> subnets;

    /**
     * @return Can be specified multiple times to define multiple subnets. Each `subnet` block supports fields documented below.
     * 
     * > **NOTE** Since `subnet` can be configured both inline and via the separate `azure.network.Subnet` resource, we have to explicitly set it to empty slice (`[]`) to remove it.
     * 
     */
    public Optional>> subnets() {
        return Optional.ofNullable(this.subnets);
    }

    /**
     * A mapping of tags to assign to the resource.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return A mapping of tags to assign to the resource.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private VirtualNetworkState() {}

    private VirtualNetworkState(VirtualNetworkState $) {
        this.addressSpaces = $.addressSpaces;
        this.bgpCommunity = $.bgpCommunity;
        this.ddosProtectionPlan = $.ddosProtectionPlan;
        this.dnsServers = $.dnsServers;
        this.edgeZone = $.edgeZone;
        this.encryption = $.encryption;
        this.flowTimeoutInMinutes = $.flowTimeoutInMinutes;
        this.guid = $.guid;
        this.location = $.location;
        this.name = $.name;
        this.resourceGroupName = $.resourceGroupName;
        this.subnets = $.subnets;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private VirtualNetworkState $;

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

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

        /**
         * @param addressSpaces The address space that is used the virtual network. You can supply more than one address space.
         * 
         * @return builder
         * 
         */
        public Builder addressSpaces(@Nullable Output> addressSpaces) {
            $.addressSpaces = addressSpaces;
            return this;
        }

        /**
         * @param addressSpaces The address space that is used the virtual network. You can supply more than one address space.
         * 
         * @return builder
         * 
         */
        public Builder addressSpaces(List addressSpaces) {
            return addressSpaces(Output.of(addressSpaces));
        }

        /**
         * @param addressSpaces The address space that is used the virtual network. You can supply more than one address space.
         * 
         * @return builder
         * 
         */
        public Builder addressSpaces(String... addressSpaces) {
            return addressSpaces(List.of(addressSpaces));
        }

        /**
         * @param bgpCommunity The BGP community attribute in format `<as-number>:<community-value>`.
         * 
         * > **NOTE** The `as-number` segment is the Microsoft ASN, which is always `12076` for now.
         * 
         * @return builder
         * 
         */
        public Builder bgpCommunity(@Nullable Output bgpCommunity) {
            $.bgpCommunity = bgpCommunity;
            return this;
        }

        /**
         * @param bgpCommunity The BGP community attribute in format `<as-number>:<community-value>`.
         * 
         * > **NOTE** The `as-number` segment is the Microsoft ASN, which is always `12076` for now.
         * 
         * @return builder
         * 
         */
        public Builder bgpCommunity(String bgpCommunity) {
            return bgpCommunity(Output.of(bgpCommunity));
        }

        /**
         * @param ddosProtectionPlan A `ddos_protection_plan` block as documented below.
         * 
         * @return builder
         * 
         */
        public Builder ddosProtectionPlan(@Nullable Output ddosProtectionPlan) {
            $.ddosProtectionPlan = ddosProtectionPlan;
            return this;
        }

        /**
         * @param ddosProtectionPlan A `ddos_protection_plan` block as documented below.
         * 
         * @return builder
         * 
         */
        public Builder ddosProtectionPlan(VirtualNetworkDdosProtectionPlanArgs ddosProtectionPlan) {
            return ddosProtectionPlan(Output.of(ddosProtectionPlan));
        }

        /**
         * @param dnsServers List of IP addresses of DNS servers
         * 
         * > **NOTE** Since `dns_servers` can be configured both inline and via the separate `azure.network.VirtualNetworkDnsServers` resource, we have to explicitly set it to empty slice (`[]`) to remove it.
         * 
         * @return builder
         * 
         */
        public Builder dnsServers(@Nullable Output> dnsServers) {
            $.dnsServers = dnsServers;
            return this;
        }

        /**
         * @param dnsServers List of IP addresses of DNS servers
         * 
         * > **NOTE** Since `dns_servers` can be configured both inline and via the separate `azure.network.VirtualNetworkDnsServers` resource, we have to explicitly set it to empty slice (`[]`) to remove it.
         * 
         * @return builder
         * 
         */
        public Builder dnsServers(List dnsServers) {
            return dnsServers(Output.of(dnsServers));
        }

        /**
         * @param dnsServers List of IP addresses of DNS servers
         * 
         * > **NOTE** Since `dns_servers` can be configured both inline and via the separate `azure.network.VirtualNetworkDnsServers` resource, we have to explicitly set it to empty slice (`[]`) to remove it.
         * 
         * @return builder
         * 
         */
        public Builder dnsServers(String... dnsServers) {
            return dnsServers(List.of(dnsServers));
        }

        /**
         * @param edgeZone Specifies the Edge Zone within the Azure Region where this Virtual Network should exist. Changing this forces a new Virtual Network to be created.
         * 
         * @return builder
         * 
         */
        public Builder edgeZone(@Nullable Output edgeZone) {
            $.edgeZone = edgeZone;
            return this;
        }

        /**
         * @param edgeZone Specifies the Edge Zone within the Azure Region where this Virtual Network should exist. Changing this forces a new Virtual Network to be created.
         * 
         * @return builder
         * 
         */
        public Builder edgeZone(String edgeZone) {
            return edgeZone(Output.of(edgeZone));
        }

        /**
         * @param encryption A `encryption` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder encryption(@Nullable Output encryption) {
            $.encryption = encryption;
            return this;
        }

        /**
         * @param encryption A `encryption` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder encryption(VirtualNetworkEncryptionArgs encryption) {
            return encryption(Output.of(encryption));
        }

        /**
         * @param flowTimeoutInMinutes The flow timeout in minutes for the Virtual Network, which is used to enable connection tracking for intra-VM flows. Possible values are between `4` and `30` minutes.
         * 
         * @return builder
         * 
         */
        public Builder flowTimeoutInMinutes(@Nullable Output flowTimeoutInMinutes) {
            $.flowTimeoutInMinutes = flowTimeoutInMinutes;
            return this;
        }

        /**
         * @param flowTimeoutInMinutes The flow timeout in minutes for the Virtual Network, which is used to enable connection tracking for intra-VM flows. Possible values are between `4` and `30` minutes.
         * 
         * @return builder
         * 
         */
        public Builder flowTimeoutInMinutes(Integer flowTimeoutInMinutes) {
            return flowTimeoutInMinutes(Output.of(flowTimeoutInMinutes));
        }

        /**
         * @param guid The GUID of the virtual network.
         * 
         * @return builder
         * 
         */
        public Builder guid(@Nullable Output guid) {
            $.guid = guid;
            return this;
        }

        /**
         * @param guid The GUID of the virtual network.
         * 
         * @return builder
         * 
         */
        public Builder guid(String guid) {
            return guid(Output.of(guid));
        }

        /**
         * @param location The location/region where the virtual network is created. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The location/region where the virtual network is created. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param name The name of the virtual network. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name of the virtual network. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param resourceGroupName The name of the resource group in which to create the virtual network. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(@Nullable Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group in which to create the virtual network. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param subnets Can be specified multiple times to define multiple subnets. Each `subnet` block supports fields documented below.
         * 
         * > **NOTE** Since `subnet` can be configured both inline and via the separate `azure.network.Subnet` resource, we have to explicitly set it to empty slice (`[]`) to remove it.
         * 
         * @return builder
         * 
         */
        public Builder subnets(@Nullable Output> subnets) {
            $.subnets = subnets;
            return this;
        }

        /**
         * @param subnets Can be specified multiple times to define multiple subnets. Each `subnet` block supports fields documented below.
         * 
         * > **NOTE** Since `subnet` can be configured both inline and via the separate `azure.network.Subnet` resource, we have to explicitly set it to empty slice (`[]`) to remove it.
         * 
         * @return builder
         * 
         */
        public Builder subnets(List subnets) {
            return subnets(Output.of(subnets));
        }

        /**
         * @param subnets Can be specified multiple times to define multiple subnets. Each `subnet` block supports fields documented below.
         * 
         * > **NOTE** Since `subnet` can be configured both inline and via the separate `azure.network.Subnet` resource, we have to explicitly set it to empty slice (`[]`) to remove it.
         * 
         * @return builder
         * 
         */
        public Builder subnets(VirtualNetworkSubnetArgs... subnets) {
            return subnets(List.of(subnets));
        }

        /**
         * @param tags A mapping of tags to assign to the resource.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags A mapping of tags to assign to the resource.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        public VirtualNetworkState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy