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

com.microsoft.azure.management.network.RouteFilterRule Maven / Gradle / Ivy

Go to download

This package contains Microsoft Azure Network Management SDK. A new set of management libraries are now Generally Available. For documentation on how to use the new libraries, please see https://aka.ms/azsdk/java/mgmt

There is a newer version: 1.41.4
Show newest version
/**
 * 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.RouteFilterRuleInner;
import com.microsoft.azure.management.resources.fluentcore.arm.models.ChildResource;
import com.microsoft.azure.management.resources.fluentcore.model.Attachable;
import com.microsoft.azure.management.resources.fluentcore.model.Settable;
import com.microsoft.azure.management.resources.fluentcore.model.HasInner;

import java.util.List;

/**
 * A route filter rule in a route filter group.
 */
@Fluent
@Beta(Beta.SinceVersion.V1_10_0)
public interface RouteFilterRule extends
        HasInner,
        ChildResource {

    /**
     * @return the access type of the rule
     */
    Access access();

    /**
     * @return the rule type of the rule
     */
    String routeFilterRuleType();

    /**
     * The collection for bgp community values to filter on. e.g.
     * ['12076:5010','12076:5020'].
     * @return collection of community values
     */
    List communities();

    /**
     * @return the provisioning state of the resource
     */
    ProvisioningState provisioningState();

    /**
     * @return resource location
     */
    String location();
    /**
     * The entirety of a route filter rule definition.
     * @param  the return type of the final {@link Attachable#attach()}
     */
    interface Definition extends
            DefinitionStages.Blank,
            DefinitionStages.WithBgpCommunities,
            DefinitionStages.WithAttach {
    }

    /**
     * Grouping of route filter rule definition stages applicable as part of a route filter group creation.
     */
    interface DefinitionStages {
        /**
         * The first stage of a route filter rule definition.
         * @param  the stage of the parent definition to return to after attaching this definition
         */
        interface Blank extends WithBgpCommunities {
        }

        /**
         * The stage of the route filter rule definition allowing bgp service communities to be specified.
         */
        interface WithBgpCommunities {
            /**
             * Set the collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020'].
             * @param communities service communities
             * @return the next stage of the definition
             */
            WithAttach withBgpCommunities(String... communities);
            /**
             * Set bgp community value to filter on. e.g. '12076:5020'.
             * @param community service community
             * @return the next stage of the definition
             */
            WithAttach withBgpCommunity(String community);
            /**
             * Remove the bgp community value to filter on. e.g. '12076:5010'
             * @param  community service community
             * @return the next stage of the update
             */
            Update withoutBgpCommunity(String community);
        }

        /**
         * The stage of the route filter rule definition allowing access type of the rule.
         */
        interface WithAccessType {
            /**
             * Set 'Allow' acces type of the rule.
             * @return the next stage of the definition
             */
            WithAttach allowAccess();
            /**
             * Set 'Deny' access type of the rule.
             * @return the next stage of the definition
             */
            WithAttach denyAccess();
        }

        /** The final stage of the route filter rule definition.
         * 

* At this stage, any remaining optional settings can be specified, or the route filter rule definition * can be attached to the parent route filter group definition using {@link WithAttach#attach()}. * @param the return type of {@link WithAttach#attach()} */ interface WithAttach extends Attachable.InDefinition, WithAccessType { } } /** The entirety of a route filter rule definition as part of a route filter group update. * @param the return type of the final {@link UpdateDefinitionStages.WithAttach#attach()} */ interface UpdateDefinition extends UpdateDefinitionStages.Blank, UpdateDefinitionStages.WithAttach { } /** * Grouping of route filter rule definition stages applicable as part of a route filter group update. */ interface UpdateDefinitionStages { /** * The first stage of a route filter rule description as part of an update of a networking route filter group. * @param the return type of the final {@link Attachable#attach()} */ interface Blank extends UpdateDefinitionStages.WithBgpCommunities { } /** * The stage of the route filter rule definition allowing bgp service communities to be specified. */ interface WithBgpCommunities { /** * Set the collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020']. * @param communities service communities * @return the next stage of the definition */ UpdateDefinitionStages.WithAttach withBgpCommunities(String... communities); /** * Set bgp community value to filter on. e.g. '12076:5020'. * @param community service community * @return the next stage of the definition */ UpdateDefinitionStages.WithAttach withBgpCommunity(String community); /** * Remove the bgp community value to filter on. e.g. '12076:5010' * @param community service community * @return the next stage of the update */ Update withoutBgpCommunity(String community); } /** * The stage of the route filter rule definition allowing access type of the rule. */ interface WithAccessType { /** * Set 'Allow' acces type of the rule. * @return the next stage of the definition */ WithAttach allowAccess(); /** * Set 'Deny' access type of the rule. * @return the next stage of the definition */ WithAttach denyAccess(); } /** The final stage of the route filter rule definition. *

* At this stage, any remaining optional settings can be specified, or the route filter rule definition * can be attached to the parent route filter group definition using {@link WithAttach#attach()}. * @param the return type of {@link WithAttach#attach()} */ interface WithAttach extends Attachable.InUpdate { } } /** * The entirety of a route filter rule update as part of a route filter group update. */ interface Update extends UpdateStages.WithBgpCommunities, UpdateStages.WithAccessType, Settable { } /** * Grouping of route filter rule update stages. */ interface UpdateStages { /** * The stage of the route filter rule description allowing bgp service communities to be specified. */ interface WithBgpCommunities { /** * The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020']. Note: this method will overwrite existing communities. * @param communities service communities * @return the next stage of the update */ Update withBgpCommunities(String... communities); /** * The bgp community values to filter on. e.g. '12076:5010'. This method has additive effect. * @param community service community * @return the next stage of the update */ Update withBgpCommunity(String community); /** * Remove the bgp community value to filter on. e.g. '12076:5010' * @param community service community * @return the next stage of the update */ Update withoutBgpCommunity(String community); } /** * The stage of the route filter rule definition allowing access type of the rule. */ interface WithAccessType { /** * Set 'Allow' acces type of the rule. * @return the next stage of the definition */ Update allowAccess(); /** * Set 'Deny' access type of the rule. * @return the next stage of the definition */ Update denyAccess(); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy