Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. See License.txt in the project root for
license information.
/**
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for
* license information.
*/
package com.microsoft.azure.management.network;
import com.microsoft.azure.management.apigeneration.Beta;
import com.microsoft.azure.management.apigeneration.Fluent;
import com.microsoft.azure.management.network.implementation.NetworkManager;
import com.microsoft.azure.management.network.implementation.RouteTableInner;
import com.microsoft.azure.management.network.model.HasAssociatedSubnets;
import com.microsoft.azure.management.network.model.UpdatableWithTags;
import com.microsoft.azure.management.resources.fluentcore.arm.models.GroupableResource;
import com.microsoft.azure.management.resources.fluentcore.arm.models.Resource;
import com.microsoft.azure.management.resources.fluentcore.model.Appliable;
import com.microsoft.azure.management.resources.fluentcore.model.Creatable;
import com.microsoft.azure.management.resources.fluentcore.model.Refreshable;
import com.microsoft.azure.management.resources.fluentcore.model.Updatable;
import java.util.Map;
Entry point for route table management.
/**
* Entry point for route table management.
*/
@Fluent()
public interface RouteTable extends
GroupableResource<NetworkManager, RouteTableInner>,
Refreshable<RouteTable>,
Updatable<RouteTable.Update>,
UpdatableWithTags<RouteTable>,
HasAssociatedSubnets {
Returns: the routes of this route table
/**
* @return the routes of this route table
*/
Map<String, Route> routes();
Returns: whether to disable the routes learned by BGP on that route
table. True means disable.
/**
* @return whether to disable the routes learned by BGP on that route
* table. True means disable.
*/
@Beta(Beta.SinceVersion.V1_10_0)
boolean isBgpRoutePropagationDisabled();
The entirety of a route table definition.
/**
* The entirety of a route table definition.
*/
interface Definition extends
DefinitionStages.Blank,
DefinitionStages.WithGroup,
DefinitionStages.WithCreate {
}
Grouping of route table definition stages.
/**
* Grouping of route table definition stages.
*/
interface DefinitionStages {
The first stage of a route table definition.
/**
* The first stage of a route table definition.
*/
interface Blank
extends GroupableResource.DefinitionWithRegion<WithGroup> {
}
The stage of a route table definition allowing to specify the resource group.
/**
* The stage of a route table definition allowing to specify the resource group.
*/
interface WithGroup
extends GroupableResource.DefinitionStages.WithGroup<DefinitionStages.WithCreate> {
}
The stage of the route table definition allowing to add routes.
/**
* The stage of the route table definition allowing to add routes.
*/
interface WithRoute {
Begins the definition of a new route to add to the route table.
The definition must be completed with a call to InDefinition.attach()
Params: - name – the name of the route
Returns: the first stage of the definition
/**
* Begins the definition of a new route to add to the route table.
* <p>
* The definition must be completed with a call to {@link Route.DefinitionStages.WithAttach#attach()}
* @param name the name of the route
* @return the first stage of the definition
*/
Route.DefinitionStages.Blank<WithCreate> defineRoute(String name);
Creates a non-virtual appliance route.
The name is generated automatically.
Params: - destinationAddressPrefix – the destination address prefix, expressed in the CIDR notation, for the route to apply to
- nextHop – the next hop type
Returns: the next stage of the definition
/**
* Creates a non-virtual appliance route.
* <p>
* The name is generated automatically.
* @param destinationAddressPrefix the destination address prefix, expressed in the CIDR notation, for the route to apply to
* @param nextHop the next hop type
* @return the next stage of the definition
*/
WithCreate withRoute(String destinationAddressPrefix, RouteNextHopType nextHop);
Creates a route via a virtual appliance.
Params: - destinationAddressPrefix – the destination address prefix, expressed in the CIDR notation, for the route to apply to
- ipAddress – the IP address of the virtual appliance to route the traffic through
Returns: the next stage of the definition
/**
* Creates a route via a virtual appliance.
* @param destinationAddressPrefix the destination address prefix, expressed in the CIDR notation, for the route to apply to
* @param ipAddress the IP address of the virtual appliance to route the traffic through
* @return the next stage of the definition
*/
WithCreate withRouteViaVirtualAppliance(String destinationAddressPrefix, String ipAddress);
}
The stage of the route table definition allowing to specify whether to disable the routes learned by BGP on that route table.
/**
* The stage of the route table definition allowing to specify whether to disable the routes learned by BGP on that route table.
*/
@Beta(Beta.SinceVersion.V1_10_0)
interface WithBgpRoutePropagation {
Disable the routes learned by BGP on that route table.
Returns: the next stage of the definition
/**
* Disable the routes learned by BGP on that route table.
* @return the next stage of the definition
*/
WithCreate withDisableBgpRoutePropagation();
}
The stage of a route table definition which contains all the minimum required inputs for the resource to be created (via Creatable<RouteTable>.create()
), but also allows for any other optional settings to be specified. /**
* The stage of a route table definition which contains all the minimum required inputs for
* the resource to be created (via {@link WithCreate#create()}), but also allows
* for any other optional settings to be specified.
*/
interface WithCreate extends
Creatable<RouteTable>,
Resource.DefinitionWithTags<WithCreate>,
DefinitionStages.WithRoute,
DefinitionStages.WithBgpRoutePropagation {
}
}
Grouping of route table update stages.
/**
* Grouping of route table update stages.
*/
interface UpdateStages {
The stage of the route table definition allowing to add, remove or modify routes.
/**
* The stage of the route table definition allowing to add, remove or modify routes.
*/
interface WithRoute {
Creates a non-virtual appliance route.
The name is generated automatically.
Params: - destinationAddressPrefix – the destination address prefix, expressed in the CIDR notation, for the route to apply to
- nextHop – the next hop type
Returns: the next stage of the update
/**
* Creates a non-virtual appliance route.
* <p>
* The name is generated automatically.
* @param destinationAddressPrefix the destination address prefix, expressed in the CIDR notation, for the route to apply to
* @param nextHop the next hop type
* @return the next stage of the update
*/
Update withRoute(String destinationAddressPrefix, RouteNextHopType nextHop);
Creates a route via a virtual appliance.
Params: - destinationAddressPrefix – the destination address prefix, expressed in the CIDR notation, for the route to apply to
- ipAddress – the IP address of the virtual appliance to route the traffic through
Returns: the next stage of the update
/**
* Creates a route via a virtual appliance.
* @param destinationAddressPrefix the destination address prefix, expressed in the CIDR notation, for the route to apply to
* @param ipAddress the IP address of the virtual appliance to route the traffic through
* @return the next stage of the update
*/
Update withRouteViaVirtualAppliance(String destinationAddressPrefix, String ipAddress);
Begins the definition of a new route to add to the route table.
The definition must be completed with a call to InUpdate.attach()
Params: - name – the name of the route
Returns: the first stage of the definition
/**
* Begins the definition of a new route to add to the route table.
* <p>
* The definition must be completed with a call to {@link Route.UpdateDefinitionStages.WithAttach#attach()}
* @param name the name of the route
* @return the first stage of the definition
*/
Route.UpdateDefinitionStages.Blank<Update> defineRoute(String name);
Removes the specified route from the route table.
Params: - name – the name of an existing route on this route table
Returns: the next stage of the update
/**
* Removes the specified route from the route table.
* @param name the name of an existing route on this route table
* @return the next stage of the update
*/
Update withoutRoute(String name);
Begins the update of an existing route on this route table.
Params: - name – the name of an existing route
Returns: the first stage of the update
/**
* Begins the update of an existing route on this route table.
* @param name the name of an existing route
* @return the first stage of the update
*/
Route.Update updateRoute(String name);
}
The stage of the route table update allowing to specify whether to disable the routes learned by BGP on that route table.
/**
* The stage of the route table update allowing to specify whether to disable the routes learned by BGP on that route table.
*/
@Beta(Beta.SinceVersion.V1_10_0)
interface WithBgpRoutePropagation {
Disable the routes learned by BGP on that route table.
Returns: the next stage of the update
/**
* Disable the routes learned by BGP on that route table.
* @return the next stage of the update
*/
Update withDisableBgpRoutePropagation();
Enable the routes learned by BGP on that route table.
Returns: the next stage of the update
/**
* Enable the routes learned by BGP on that route table.
* @return the next stage of the update
*/
Update withEnableBgpRoutePropagation();
}
}
The template for a route table update operation, containing all the settings that can be modified.
Call Appliable<RouteTable>.apply()
to apply the changes to the resource in Azure.
/**
* The template for a route table update operation, containing all the settings that can be modified.
* <p>
* Call {@link Update#apply()} to apply the changes to the resource in Azure.
*/
interface Update extends
Appliable<RouteTable>,
Resource.UpdateWithTags<Update>,
UpdateStages.WithRoute,
UpdateStages.WithBgpRoutePropagation {
}
}