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

com.azure.resourcemanager.network.models.NicIpConfiguration Maven / Gradle / Ivy

Go to download

This package contains Microsoft Azure Network Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt

There is a newer version: 2.44.0
Show newest version
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.resourcemanager.network.models;

import com.azure.core.annotation.Fluent;
import com.azure.resourcemanager.network.fluent.models.NetworkInterfaceIpConfigurationInner;
import com.azure.resourcemanager.resources.fluentcore.arm.models.ChildResource;
import com.azure.resourcemanager.resources.fluentcore.model.Attachable;
import com.azure.resourcemanager.resources.fluentcore.model.Creatable;
import com.azure.resourcemanager.resources.fluentcore.model.HasInnerModel;
import com.azure.resourcemanager.resources.fluentcore.model.Settable;

/** An IP configuration in a network interface. */
@Fluent()
public interface NicIpConfiguration
    extends NicIpConfigurationBase,
        HasInnerModel,
        ChildResource,
        HasPublicIpAddress {

    /**
     * The entirety of the network interface IP configuration definition.
     *
     * @param  the stage of the parent network interface definition to return to after attaching this
     *     definition
     */
    interface Definition
        extends DefinitionStages.Blank,
            DefinitionStages.WithAttach,
            DefinitionStages.WithNetwork,
            DefinitionStages.WithSubnet,
            DefinitionStages.WithPrivateIP {
    }

    /**
     * Grouping of network interface IP configuration definition stages applicable as part of a network interface
     * update.
     */
    interface DefinitionStages {
        /**
         * The first stage of network interface IP configuration definition.
         *
         * @param  the stage of the parent network interface definition to return to after attaching this
         *     definition
         */
        interface Blank extends WithNetwork {
        }

        /**
         * The stage of the network interface IP configuration definition allowing to specify the virtual network.
         *
         * @param  the stage of the parent network interface definition to return to after attaching this
         *     definition
         */
        interface WithNetwork {
            /**
             * Create a new virtual network to associate with the network interface IP configuration, based on the
             * provided definition.
             *
             * @param creatable a creatable definition for a new virtual network
             * @return the next stage of the definition
             */
            WithPrivateIP withNewNetwork(Creatable creatable);

            /**
             * Creates a new virtual network to associate with the network interface IP configuration.
             *
             * 

the virtual network will be created in the same resource group and region as of parent network * interface, it will be created with the specified address space and a default subnet covering the entirety * of the network IP address space. * * @param name the name of the new virtual network * @param addressSpace the address space for rhe virtual network * @return the next stage of the definition */ WithPrivateIP withNewNetwork(String name, String addressSpace); /** * Creates a new virtual network to associate with the network interface IP configuration. * *

the virtual network will be created in the same resource group and region as of parent network * interface, it will be created with the specified address space and a default subnet covering the entirety * of the network IP address space. * * @param addressSpace the address space for the virtual network * @return the next stage of the definition */ WithPrivateIP withNewNetwork(String addressSpace); /** * Associate an existing virtual network with the network interface IP configuration. * * @param network an existing virtual network * @return the next stage of the definition */ WithSubnet withExistingNetwork(Network network); } /** * The stage of the network interface IP configuration definition allowing to specify private IP address within * a virtual network subnet. * * @param the stage of the parent network interface definition to return to after attaching this * definition */ interface WithPrivateIP extends HasPrivateIpAddress.DefinitionStages.WithPrivateIPAddress> { /** * Specifies the IP version for the private IP address. * * @param ipVersion an IP version * @return the next stage of the definition */ WithAttach withPrivateIpVersion(IpVersion ipVersion); } /** * The stage of the network interface IP configuration definition allowing to specify subnet. * * @param the return type of the final {@link Attachable#attach()} */ interface WithSubnet { /** * Associate a subnet with the network interface IP configuration. * * @param name the subnet name * @return the next stage of the definition */ WithPrivateIP withSubnet(String name); } /** * The stage of the network interface IP configuration definition allowing to associate it with a public IP * address. * * @param the stage of the parent network interface definition to return to after attaching this * definition */ interface WithPublicIPAddress extends HasPublicIpAddress.DefinitionStages.WithPublicIPAddress> { } /** * The stage of the network interface IP configuration definition allowing to specify the load balancer to * associate this IP configuration with. * * @param the stage of the parent network interface definition to return to after attaching this * definition */ interface WithLoadBalancer { /** * Specifies the load balancer backend to associate this IP configuration with. * * @param loadBalancer an existing load balancer * @param backendName the name of an existing backend on that load balancer * @return the next stage of the definition */ WithAttach withExistingLoadBalancerBackend(LoadBalancer loadBalancer, String backendName); /** * Specifies the load balancer inbound NAT rule to associate this IP configuration with. * * @param loadBalancer an existing load balancer * @param inboundNatRuleName the name of an existing inbound NAT rule on the selected load balancer * @return the next stage of the definition */ WithAttach withExistingLoadBalancerInboundNatRule( LoadBalancer loadBalancer, String inboundNatRuleName); } /** * The stage of the network interface IP configuration definition allowing to specify the load balancer to * associate this IP configuration with. * * @param the stage of the parent network interface definition to return to after attaching this * definition */ interface WithApplicationGateway { /** * Specifies the application gateway backend to associate this IP configuration with. * * @param appGateway an existing application gateway * @param backendName the name of an existing backend on the application gateway * @return the next stage of the definition */ WithAttach withExistingApplicationGatewayBackend( ApplicationGateway appGateway, String backendName); } /** The stage of the definition allowing to specify delete options for the public ip address. * * @param the stage of the parent network interface definition to return to after attaching this * definition * */ interface WithPublicIPAddressDeleteOptions { /** * Sets delete options for public ip address. * * @param deleteOptions the delete options for primary network interfaces * @return the next stage of the definition */ WithAttach withPublicIPAddressDeleteOptions(DeleteOptions deleteOptions); } /** * The final stage of network interface IP configuration. * *

At this stage, any remaining optional settings can be specified, or the network interface IP configuration * definition can be attached to the parent network interface definition. * * @param the stage of the parent network interface definition to return to after attaching this * definition */ interface WithAttach extends Attachable.InDefinition, WithPublicIPAddress, WithLoadBalancer, WithApplicationGateway, WithPublicIPAddressDeleteOptions { } } /** * The entirety of a network interface IP configuration definition as part of a network interface update. * * @param the return type of the final {@link UpdateDefinitionStages.WithAttach#attach()} */ interface UpdateDefinition extends UpdateDefinitionStages.Blank, UpdateDefinitionStages.WithAttach, UpdateDefinitionStages.WithNetwork, UpdateDefinitionStages.WithPrivateIP, UpdateDefinitionStages.WithSubnet, UpdateDefinitionStages.WithPublicIPAddress { } /** Grouping of network interface IP configuration definition stages. */ interface UpdateDefinitionStages { /** * The first stage of network interface IP configuration definition. * * @param the stage of the parent network interface update to return to after attaching this * definition */ interface Blank extends WithNetwork { } /** * The stage of the network interface IP configuration definition allowing to specify the virtual network. * * @param the stage of the parent network interface update to return to after attaching this * definition */ interface WithNetwork { /** * Create a new virtual network to associate with the network interface IP configuration, based on the * provided definition. * * @param creatable a creatable definition for a new virtual network * @return the next stage of the definition */ WithPrivateIP withNewNetwork(Creatable creatable); /** * Creates a new virtual network to associate with the network interface IP configuration. * *

the virtual network will be created in the same resource group and region as of parent network * interface, it will be created with the specified address space and a default subnet covering the entirety * of the network IP address space. * * @param name the name of the new virtual network * @param addressSpace the address space for rhe virtual network * @return the next stage of the definition */ WithPrivateIP withNewNetwork(String name, String addressSpace); /** * Creates a new virtual network to associate with the network interface IP configuration. * *

the virtual network will be created in the same resource group and region as of parent network * interface, it will be created with the specified address space and a default subnet covering the entirety * of the network IP address space. * * @param addressSpace the address space for the virtual network * @return the next stage of the definition */ WithPrivateIP withNewNetwork(String addressSpace); /** * Associate an existing virtual network with the network interface IP configuration. * * @param network an existing virtual network * @return the next stage of the definition */ WithSubnet withExistingNetwork(Network network); } /** * The stage of the network interface IP configuration definition allowing to specify private IP address within * a virtual network subnet. * * @param the stage of the parent network interface update to return to after attaching this * definition */ interface WithPrivateIP extends HasPrivateIpAddress.UpdateDefinitionStages.WithPrivateIPAddress> { /** * Specifies the IP version for the private IP address. * * @param ipVersion an IP version * @return the next stage of the definition */ WithAttach withPrivateIpVersion(IpVersion ipVersion); } /** * The stage of the network interface IP configuration definition allowing to specify subnet. * * @param the stage of the parent network interface update to return to after attaching this * definition */ interface WithSubnet { /** * Associate a subnet with the network interface IP configuration. * * @param name the subnet name * @return the next stage of the definition */ WithPrivateIP withSubnet(String name); } /** * The stage of the network interface IP configuration definition allowing to associate it with a public IP * address. * * @param the stage of the parent network interface update to return to after attaching this * definition */ interface WithPublicIPAddress extends HasPublicIpAddress.UpdateDefinitionStages.WithPublicIPAddress> { } /** * The stage of the network interface IP configuration definition allowing to specify the load balancer to * associate this IP configuration with. * * @param the stage of the parent network interface update to return to after attaching this * definition */ interface WithLoadBalancer { /** * Specifies the load balancer to associate this IP configuration with. * * @param loadBalancer an existing load balancer * @param backendName the name of an existing backend on that load balancer * @return the next stage of the update */ WithAttach withExistingLoadBalancerBackend(LoadBalancer loadBalancer, String backendName); /** * Specifies the load balancer inbound NAT rule to associate this IP configuration with. * * @param loadBalancer an existing load balancer * @param inboundNatRuleName the name of an existing inbound NAT rule on the selected load balancer * @return the next stage of the update */ WithAttach withExistingLoadBalancerInboundNatRule( LoadBalancer loadBalancer, String inboundNatRuleName); } /** * The stage of the network interface IP configuration definition allowing to specify the load balancer to * associate this IP configuration with. * * @param the stage of the parent network interface update to return to after attaching this * definition */ interface WithApplicationGateway { /** * Specifies the application gateway backend to associate this IP configuration with. * * @param appGateway an existing application gateway * @param backendName the name of an existing backend on the application gateway * @return the next stage of the definition */ WithAttach withExistingApplicationGatewayBackend( ApplicationGateway appGateway, String backendName); } /** * The stage of the definition allowing to specify delete options for the public ip address. * * @param the stage of the parent network interface update to return to after attaching this * definition * */ interface WithPublicIPAddressDeleteOptions { /** * Sets delete options for public ip address. * * @param deleteOptions the delete options for primary network interfaces * @return the next stage of the update */ WithAttach withPublicIPAddressDeleteOptions(DeleteOptions deleteOptions); } /** * The final stage of network interface IP configuration. * *

At this stage, any remaining optional settings can be specified, or the network interface IP configuration * definition can be attached to the parent network interface definition using {@link WithAttach#attach()}. * * @param the stage of the parent network interface update to return to after attaching this * definition */ interface WithAttach extends Attachable.InUpdate, WithPublicIPAddress, WithLoadBalancer, WithApplicationGateway, WithPublicIPAddressDeleteOptions { } } /** The entirety of a network interface IP configuration update as part of a network interface update. */ interface Update extends Settable, UpdateStages.WithSubnet, UpdateStages.WithPrivateIP, UpdateStages.WithPublicIPAddress, UpdateStages.WithLoadBalancer, UpdateStages.WithApplicationGateway, UpdateStages.WithPublicIPAddressDeleteOptions { } /** Grouping of network interface IP configuration update stages. */ interface UpdateStages { /** The stage of the network interface IP configuration update allowing to specify subnet. */ interface WithSubnet { /** * Associate a subnet with the network interface IP configuration. * * @param name the subnet name * @return the next stage of the network interface IP configuration update */ Update withSubnet(String name); } /** The stage of the network interface IP configuration update allowing to specify private IP. */ interface WithPrivateIP extends HasPrivateIpAddress.UpdateStages.WithPrivateIPAddress { /** * Specifies the IP version for the private IP address. * * @param ipVersion an IP version * @return the next stage of the update */ Update withPrivateIpVersion(IpVersion ipVersion); } /** The stage of the network interface IP configuration update allowing to specify public IP address. */ interface WithPublicIPAddress extends HasPublicIpAddress.UpdateStages.WithPublicIPAddress { } /** * The stage of the network interface's IP configuration allowing to specify the load balancer to associate this * IP configuration with. */ interface WithLoadBalancer { /** * Specifies the load balancer to associate this IP configuration with. * * @param loadBalancer an existing load balancer * @param backendName the name of an existing backend on that load balancer * @return the next stage of the update */ Update withExistingLoadBalancerBackend(LoadBalancer loadBalancer, String backendName); /** * Specifies the load balancer inbound NAT rule to associate this IP configuration with. * * @param loadBalancer an existing load balancer * @param inboundNatRuleName the name of an existing inbound NAT rule on the selected load balancer * @return the next stage of the update */ Update withExistingLoadBalancerInboundNatRule(LoadBalancer loadBalancer, String inboundNatRuleName); /** * Removes all the existing associations with load balancer backends. * * @return the next stage of the update */ Update withoutLoadBalancerBackends(); /** * Removes all the existing associations with load balancer inbound NAT rules. * * @return the next stage of the update */ Update withoutLoadBalancerInboundNatRules(); } /** * The stage of the network interface IP configuration update allowing to specify the load balancer to associate * this IP configuration with. */ interface WithApplicationGateway { /** * Specifies the application gateway backend to associate this IP configuration with. * * @param appGateway an existing application gateway * @param backendName the name of an existing backend on the application gateway * @return the next stage of the update */ Update withExistingApplicationGatewayBackend(ApplicationGateway appGateway, String backendName); /** * Removes all existing associations with application gateway backends. * * @return the next stage of the update */ Update withoutApplicationGatewayBackends(); } /** The stage of the network interface update allowing to specify delete options for the public ip address. */ interface WithPublicIPAddressDeleteOptions { /** * Sets delete options for public ip address. * * @param deleteOptions the delete options for primary network interfaces * @return the next stage of the update */ Update withPublicIPAddressDeleteOptions(DeleteOptions deleteOptions); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy