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

com.pulumi.azure.network.SubnetArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.

There is a newer version: 6.10.0-alpha.1731737215
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.azure.network;

import com.pulumi.azure.network.inputs.SubnetDelegationArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
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;


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

    public static final SubnetArgs Empty = new SubnetArgs();

    /**
     * The address prefixes to use for the subnet.
     * 
     * > **NOTE:** Currently only a single address prefix can be set as the [Multiple Subnet Address Prefixes Feature](https://github.com/Azure/azure-cli/issues/18194#issuecomment-880484269) is not yet in public preview or general availability.
     * 
     */
    @Import(name="addressPrefixes", required=true)
    private Output> addressPrefixes;

    /**
     * @return The address prefixes to use for the subnet.
     * 
     * > **NOTE:** Currently only a single address prefix can be set as the [Multiple Subnet Address Prefixes Feature](https://github.com/Azure/azure-cli/issues/18194#issuecomment-880484269) is not yet in public preview or general availability.
     * 
     */
    public Output> addressPrefixes() {
        return this.addressPrefixes;
    }

    /**
     * Enable default outbound access to the internet for the subnet. Defaults to `true`.
     * 
     */
    @Import(name="defaultOutboundAccessEnabled")
    private @Nullable Output defaultOutboundAccessEnabled;

    /**
     * @return Enable default outbound access to the internet for the subnet. Defaults to `true`.
     * 
     */
    public Optional> defaultOutboundAccessEnabled() {
        return Optional.ofNullable(this.defaultOutboundAccessEnabled);
    }

    /**
     * One or more `delegation` blocks as defined below.
     * 
     */
    @Import(name="delegations")
    private @Nullable Output> delegations;

    /**
     * @return One or more `delegation` blocks as defined below.
     * 
     */
    public Optional>> delegations() {
        return Optional.ofNullable(this.delegations);
    }

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

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

    /**
     * Enable or Disable network policies for the private endpoint on the subnet. Possible values are `Disabled`, `Enabled`, `NetworkSecurityGroupEnabled` and `RouteTableEnabled`. Defaults to `Disabled`.
     * 
     * > **NOTE:** If you don't want to use network policies like user-defined Routes and Network Security Groups, you need to set `private_endpoint_network_policies` in the subnet to `Disabled`. This setting only applies to Private Endpoints in the Subnet and affects all Private Endpoints in the Subnet. For other resources in the Subnet, access is controlled based via the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.
     * 
     * > **NOTE:** If you want to use network policies like user-defined Routes and Network Security Groups, you need to set the `private_endpoint_network_policies` in the Subnet to `Enabled`/`NetworkSecurityGroupEnabled`/`RouteTableEnabled`. This setting only applies to Private Endpoints in the Subnet and affects all Private Endpoints in the Subnet. For other resources in the Subnet, access is controlled based via the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.
     * 
     * > **NOTE:** See more details from [Manage network policies for Private Endpoints](https://learn.microsoft.com/en-gb/azure/private-link/disable-private-endpoint-network-policy?tabs=network-policy-portal).
     * 
     */
    @Import(name="privateEndpointNetworkPolicies")
    private @Nullable Output privateEndpointNetworkPolicies;

    /**
     * @return Enable or Disable network policies for the private endpoint on the subnet. Possible values are `Disabled`, `Enabled`, `NetworkSecurityGroupEnabled` and `RouteTableEnabled`. Defaults to `Disabled`.
     * 
     * > **NOTE:** If you don't want to use network policies like user-defined Routes and Network Security Groups, you need to set `private_endpoint_network_policies` in the subnet to `Disabled`. This setting only applies to Private Endpoints in the Subnet and affects all Private Endpoints in the Subnet. For other resources in the Subnet, access is controlled based via the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.
     * 
     * > **NOTE:** If you want to use network policies like user-defined Routes and Network Security Groups, you need to set the `private_endpoint_network_policies` in the Subnet to `Enabled`/`NetworkSecurityGroupEnabled`/`RouteTableEnabled`. This setting only applies to Private Endpoints in the Subnet and affects all Private Endpoints in the Subnet. For other resources in the Subnet, access is controlled based via the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.
     * 
     * > **NOTE:** See more details from [Manage network policies for Private Endpoints](https://learn.microsoft.com/en-gb/azure/private-link/disable-private-endpoint-network-policy?tabs=network-policy-portal).
     * 
     */
    public Optional> privateEndpointNetworkPolicies() {
        return Optional.ofNullable(this.privateEndpointNetworkPolicies);
    }

    /**
     * Enable or Disable network policies for the private link service on the subnet. Defaults to `true`.
     * 
     * > **NOTE:** When configuring Azure Private Link service, the explicit setting `private_link_service_network_policies_enabled` must be set to `false` in the subnet since Private Link Service does not support network policies like user-defined Routes and Network Security Groups. This setting only affects the Private Link service. For other resources in the subnet, access is controlled based on the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource. See more details from [Manage network policies for Private Link Services](https://learn.microsoft.com/en-gb/azure/private-link/disable-private-link-service-network-policy?tabs=private-link-network-policy-powershell).
     * 
     */
    @Import(name="privateLinkServiceNetworkPoliciesEnabled")
    private @Nullable Output privateLinkServiceNetworkPoliciesEnabled;

    /**
     * @return Enable or Disable network policies for the private link service on the subnet. Defaults to `true`.
     * 
     * > **NOTE:** When configuring Azure Private Link service, the explicit setting `private_link_service_network_policies_enabled` must be set to `false` in the subnet since Private Link Service does not support network policies like user-defined Routes and Network Security Groups. This setting only affects the Private Link service. For other resources in the subnet, access is controlled based on the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource. See more details from [Manage network policies for Private Link Services](https://learn.microsoft.com/en-gb/azure/private-link/disable-private-link-service-network-policy?tabs=private-link-network-policy-powershell).
     * 
     */
    public Optional> privateLinkServiceNetworkPoliciesEnabled() {
        return Optional.ofNullable(this.privateLinkServiceNetworkPoliciesEnabled);
    }

    /**
     * The name of the resource group in which to create the subnet. This must be the resource group that the virtual network resides in. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group in which to create the subnet. This must be the resource group that the virtual network resides in. Changing this forces a new resource to be created.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The list of IDs of Service Endpoint Policies to associate with the subnet.
     * 
     */
    @Import(name="serviceEndpointPolicyIds")
    private @Nullable Output> serviceEndpointPolicyIds;

    /**
     * @return The list of IDs of Service Endpoint Policies to associate with the subnet.
     * 
     */
    public Optional>> serviceEndpointPolicyIds() {
        return Optional.ofNullable(this.serviceEndpointPolicyIds);
    }

    /**
     * The list of Service endpoints to associate with the subnet. Possible values include: `Microsoft.AzureActiveDirectory`, `Microsoft.AzureCosmosDB`, `Microsoft.ContainerRegistry`, `Microsoft.EventHub`, `Microsoft.KeyVault`, `Microsoft.ServiceBus`, `Microsoft.Sql`, `Microsoft.Storage`, `Microsoft.Storage.Global` and `Microsoft.Web`.
     * 
     * > **NOTE:** In order to use `Microsoft.Storage.Global` service endpoint (which allows access to virtual networks in other regions), you must enable the `AllowGlobalTagsForStorage` feature in your subscription. This is currently a preview feature, please see the [official documentation](https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security?tabs=azure-cli#enabling-access-to-virtual-networks-in-other-regions-preview) for more information.
     * 
     */
    @Import(name="serviceEndpoints")
    private @Nullable Output> serviceEndpoints;

    /**
     * @return The list of Service endpoints to associate with the subnet. Possible values include: `Microsoft.AzureActiveDirectory`, `Microsoft.AzureCosmosDB`, `Microsoft.ContainerRegistry`, `Microsoft.EventHub`, `Microsoft.KeyVault`, `Microsoft.ServiceBus`, `Microsoft.Sql`, `Microsoft.Storage`, `Microsoft.Storage.Global` and `Microsoft.Web`.
     * 
     * > **NOTE:** In order to use `Microsoft.Storage.Global` service endpoint (which allows access to virtual networks in other regions), you must enable the `AllowGlobalTagsForStorage` feature in your subscription. This is currently a preview feature, please see the [official documentation](https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security?tabs=azure-cli#enabling-access-to-virtual-networks-in-other-regions-preview) for more information.
     * 
     */
    public Optional>> serviceEndpoints() {
        return Optional.ofNullable(this.serviceEndpoints);
    }

    /**
     * The name of the virtual network to which to attach the subnet. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="virtualNetworkName", required=true)
    private Output virtualNetworkName;

    /**
     * @return The name of the virtual network to which to attach the subnet. Changing this forces a new resource to be created.
     * 
     */
    public Output virtualNetworkName() {
        return this.virtualNetworkName;
    }

    private SubnetArgs() {}

    private SubnetArgs(SubnetArgs $) {
        this.addressPrefixes = $.addressPrefixes;
        this.defaultOutboundAccessEnabled = $.defaultOutboundAccessEnabled;
        this.delegations = $.delegations;
        this.name = $.name;
        this.privateEndpointNetworkPolicies = $.privateEndpointNetworkPolicies;
        this.privateLinkServiceNetworkPoliciesEnabled = $.privateLinkServiceNetworkPoliciesEnabled;
        this.resourceGroupName = $.resourceGroupName;
        this.serviceEndpointPolicyIds = $.serviceEndpointPolicyIds;
        this.serviceEndpoints = $.serviceEndpoints;
        this.virtualNetworkName = $.virtualNetworkName;
    }

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

    public static final class Builder {
        private SubnetArgs $;

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

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

        /**
         * @param addressPrefixes The address prefixes to use for the subnet.
         * 
         * > **NOTE:** Currently only a single address prefix can be set as the [Multiple Subnet Address Prefixes Feature](https://github.com/Azure/azure-cli/issues/18194#issuecomment-880484269) is not yet in public preview or general availability.
         * 
         * @return builder
         * 
         */
        public Builder addressPrefixes(Output> addressPrefixes) {
            $.addressPrefixes = addressPrefixes;
            return this;
        }

        /**
         * @param addressPrefixes The address prefixes to use for the subnet.
         * 
         * > **NOTE:** Currently only a single address prefix can be set as the [Multiple Subnet Address Prefixes Feature](https://github.com/Azure/azure-cli/issues/18194#issuecomment-880484269) is not yet in public preview or general availability.
         * 
         * @return builder
         * 
         */
        public Builder addressPrefixes(List addressPrefixes) {
            return addressPrefixes(Output.of(addressPrefixes));
        }

        /**
         * @param addressPrefixes The address prefixes to use for the subnet.
         * 
         * > **NOTE:** Currently only a single address prefix can be set as the [Multiple Subnet Address Prefixes Feature](https://github.com/Azure/azure-cli/issues/18194#issuecomment-880484269) is not yet in public preview or general availability.
         * 
         * @return builder
         * 
         */
        public Builder addressPrefixes(String... addressPrefixes) {
            return addressPrefixes(List.of(addressPrefixes));
        }

        /**
         * @param defaultOutboundAccessEnabled Enable default outbound access to the internet for the subnet. Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder defaultOutboundAccessEnabled(@Nullable Output defaultOutboundAccessEnabled) {
            $.defaultOutboundAccessEnabled = defaultOutboundAccessEnabled;
            return this;
        }

        /**
         * @param defaultOutboundAccessEnabled Enable default outbound access to the internet for the subnet. Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder defaultOutboundAccessEnabled(Boolean defaultOutboundAccessEnabled) {
            return defaultOutboundAccessEnabled(Output.of(defaultOutboundAccessEnabled));
        }

        /**
         * @param delegations One or more `delegation` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder delegations(@Nullable Output> delegations) {
            $.delegations = delegations;
            return this;
        }

        /**
         * @param delegations One or more `delegation` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder delegations(List delegations) {
            return delegations(Output.of(delegations));
        }

        /**
         * @param delegations One or more `delegation` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder delegations(SubnetDelegationArgs... delegations) {
            return delegations(List.of(delegations));
        }

        /**
         * @param name The name of the subnet. 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 subnet. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param privateEndpointNetworkPolicies Enable or Disable network policies for the private endpoint on the subnet. Possible values are `Disabled`, `Enabled`, `NetworkSecurityGroupEnabled` and `RouteTableEnabled`. Defaults to `Disabled`.
         * 
         * > **NOTE:** If you don't want to use network policies like user-defined Routes and Network Security Groups, you need to set `private_endpoint_network_policies` in the subnet to `Disabled`. This setting only applies to Private Endpoints in the Subnet and affects all Private Endpoints in the Subnet. For other resources in the Subnet, access is controlled based via the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.
         * 
         * > **NOTE:** If you want to use network policies like user-defined Routes and Network Security Groups, you need to set the `private_endpoint_network_policies` in the Subnet to `Enabled`/`NetworkSecurityGroupEnabled`/`RouteTableEnabled`. This setting only applies to Private Endpoints in the Subnet and affects all Private Endpoints in the Subnet. For other resources in the Subnet, access is controlled based via the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.
         * 
         * > **NOTE:** See more details from [Manage network policies for Private Endpoints](https://learn.microsoft.com/en-gb/azure/private-link/disable-private-endpoint-network-policy?tabs=network-policy-portal).
         * 
         * @return builder
         * 
         */
        public Builder privateEndpointNetworkPolicies(@Nullable Output privateEndpointNetworkPolicies) {
            $.privateEndpointNetworkPolicies = privateEndpointNetworkPolicies;
            return this;
        }

        /**
         * @param privateEndpointNetworkPolicies Enable or Disable network policies for the private endpoint on the subnet. Possible values are `Disabled`, `Enabled`, `NetworkSecurityGroupEnabled` and `RouteTableEnabled`. Defaults to `Disabled`.
         * 
         * > **NOTE:** If you don't want to use network policies like user-defined Routes and Network Security Groups, you need to set `private_endpoint_network_policies` in the subnet to `Disabled`. This setting only applies to Private Endpoints in the Subnet and affects all Private Endpoints in the Subnet. For other resources in the Subnet, access is controlled based via the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.
         * 
         * > **NOTE:** If you want to use network policies like user-defined Routes and Network Security Groups, you need to set the `private_endpoint_network_policies` in the Subnet to `Enabled`/`NetworkSecurityGroupEnabled`/`RouteTableEnabled`. This setting only applies to Private Endpoints in the Subnet and affects all Private Endpoints in the Subnet. For other resources in the Subnet, access is controlled based via the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.
         * 
         * > **NOTE:** See more details from [Manage network policies for Private Endpoints](https://learn.microsoft.com/en-gb/azure/private-link/disable-private-endpoint-network-policy?tabs=network-policy-portal).
         * 
         * @return builder
         * 
         */
        public Builder privateEndpointNetworkPolicies(String privateEndpointNetworkPolicies) {
            return privateEndpointNetworkPolicies(Output.of(privateEndpointNetworkPolicies));
        }

        /**
         * @param privateLinkServiceNetworkPoliciesEnabled Enable or Disable network policies for the private link service on the subnet. Defaults to `true`.
         * 
         * > **NOTE:** When configuring Azure Private Link service, the explicit setting `private_link_service_network_policies_enabled` must be set to `false` in the subnet since Private Link Service does not support network policies like user-defined Routes and Network Security Groups. This setting only affects the Private Link service. For other resources in the subnet, access is controlled based on the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource. See more details from [Manage network policies for Private Link Services](https://learn.microsoft.com/en-gb/azure/private-link/disable-private-link-service-network-policy?tabs=private-link-network-policy-powershell).
         * 
         * @return builder
         * 
         */
        public Builder privateLinkServiceNetworkPoliciesEnabled(@Nullable Output privateLinkServiceNetworkPoliciesEnabled) {
            $.privateLinkServiceNetworkPoliciesEnabled = privateLinkServiceNetworkPoliciesEnabled;
            return this;
        }

        /**
         * @param privateLinkServiceNetworkPoliciesEnabled Enable or Disable network policies for the private link service on the subnet. Defaults to `true`.
         * 
         * > **NOTE:** When configuring Azure Private Link service, the explicit setting `private_link_service_network_policies_enabled` must be set to `false` in the subnet since Private Link Service does not support network policies like user-defined Routes and Network Security Groups. This setting only affects the Private Link service. For other resources in the subnet, access is controlled based on the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource. See more details from [Manage network policies for Private Link Services](https://learn.microsoft.com/en-gb/azure/private-link/disable-private-link-service-network-policy?tabs=private-link-network-policy-powershell).
         * 
         * @return builder
         * 
         */
        public Builder privateLinkServiceNetworkPoliciesEnabled(Boolean privateLinkServiceNetworkPoliciesEnabled) {
            return privateLinkServiceNetworkPoliciesEnabled(Output.of(privateLinkServiceNetworkPoliciesEnabled));
        }

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

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

        /**
         * @param serviceEndpointPolicyIds The list of IDs of Service Endpoint Policies to associate with the subnet.
         * 
         * @return builder
         * 
         */
        public Builder serviceEndpointPolicyIds(@Nullable Output> serviceEndpointPolicyIds) {
            $.serviceEndpointPolicyIds = serviceEndpointPolicyIds;
            return this;
        }

        /**
         * @param serviceEndpointPolicyIds The list of IDs of Service Endpoint Policies to associate with the subnet.
         * 
         * @return builder
         * 
         */
        public Builder serviceEndpointPolicyIds(List serviceEndpointPolicyIds) {
            return serviceEndpointPolicyIds(Output.of(serviceEndpointPolicyIds));
        }

        /**
         * @param serviceEndpointPolicyIds The list of IDs of Service Endpoint Policies to associate with the subnet.
         * 
         * @return builder
         * 
         */
        public Builder serviceEndpointPolicyIds(String... serviceEndpointPolicyIds) {
            return serviceEndpointPolicyIds(List.of(serviceEndpointPolicyIds));
        }

        /**
         * @param serviceEndpoints The list of Service endpoints to associate with the subnet. Possible values include: `Microsoft.AzureActiveDirectory`, `Microsoft.AzureCosmosDB`, `Microsoft.ContainerRegistry`, `Microsoft.EventHub`, `Microsoft.KeyVault`, `Microsoft.ServiceBus`, `Microsoft.Sql`, `Microsoft.Storage`, `Microsoft.Storage.Global` and `Microsoft.Web`.
         * 
         * > **NOTE:** In order to use `Microsoft.Storage.Global` service endpoint (which allows access to virtual networks in other regions), you must enable the `AllowGlobalTagsForStorage` feature in your subscription. This is currently a preview feature, please see the [official documentation](https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security?tabs=azure-cli#enabling-access-to-virtual-networks-in-other-regions-preview) for more information.
         * 
         * @return builder
         * 
         */
        public Builder serviceEndpoints(@Nullable Output> serviceEndpoints) {
            $.serviceEndpoints = serviceEndpoints;
            return this;
        }

        /**
         * @param serviceEndpoints The list of Service endpoints to associate with the subnet. Possible values include: `Microsoft.AzureActiveDirectory`, `Microsoft.AzureCosmosDB`, `Microsoft.ContainerRegistry`, `Microsoft.EventHub`, `Microsoft.KeyVault`, `Microsoft.ServiceBus`, `Microsoft.Sql`, `Microsoft.Storage`, `Microsoft.Storage.Global` and `Microsoft.Web`.
         * 
         * > **NOTE:** In order to use `Microsoft.Storage.Global` service endpoint (which allows access to virtual networks in other regions), you must enable the `AllowGlobalTagsForStorage` feature in your subscription. This is currently a preview feature, please see the [official documentation](https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security?tabs=azure-cli#enabling-access-to-virtual-networks-in-other-regions-preview) for more information.
         * 
         * @return builder
         * 
         */
        public Builder serviceEndpoints(List serviceEndpoints) {
            return serviceEndpoints(Output.of(serviceEndpoints));
        }

        /**
         * @param serviceEndpoints The list of Service endpoints to associate with the subnet. Possible values include: `Microsoft.AzureActiveDirectory`, `Microsoft.AzureCosmosDB`, `Microsoft.ContainerRegistry`, `Microsoft.EventHub`, `Microsoft.KeyVault`, `Microsoft.ServiceBus`, `Microsoft.Sql`, `Microsoft.Storage`, `Microsoft.Storage.Global` and `Microsoft.Web`.
         * 
         * > **NOTE:** In order to use `Microsoft.Storage.Global` service endpoint (which allows access to virtual networks in other regions), you must enable the `AllowGlobalTagsForStorage` feature in your subscription. This is currently a preview feature, please see the [official documentation](https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security?tabs=azure-cli#enabling-access-to-virtual-networks-in-other-regions-preview) for more information.
         * 
         * @return builder
         * 
         */
        public Builder serviceEndpoints(String... serviceEndpoints) {
            return serviceEndpoints(List.of(serviceEndpoints));
        }

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

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

        public SubnetArgs build() {
            if ($.addressPrefixes == null) {
                throw new MissingRequiredPropertyException("SubnetArgs", "addressPrefixes");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("SubnetArgs", "resourceGroupName");
            }
            if ($.virtualNetworkName == null) {
                throw new MissingRequiredPropertyException("SubnetArgs", "virtualNetworkName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy