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

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

/**
 * 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.Fluent;
import com.microsoft.azure.management.resources.fluentcore.model.Attachable;
import com.microsoft.azure.management.resources.fluentcore.model.Settable;

/**
 * A client-side representation of a TCP load balancing probe.
 */
@Fluent()
public interface LoadBalancerTcpProbe extends LoadBalancerProbe {

    /**
     * Grouping of probe definition stages.
     */
    interface DefinitionStages {
        /**
         * The first stage of the probe definition.
         * @param  the stage of the parent definition to return to after attaching this definition
         */
        interface Blank extends WithPort {
        }

        /**
         * The stage of the TCP probe definition allowing to specify the port number to monitor.
         * @param  the stage of the parent definition to return to after attaching this definition
         */
        interface WithPort {
            /**
             * Specifies the port number to call for health monitoring.
             * @param port a port number
             * @return the next stage of the definition
             */
            WithAttach withPort(int port);
        }

        /**
         * The stage of the TCP probe definition allowing to specify the probe interval.
         * @param  the stage of the parent definition to return to after attaching this definition
         */
        interface WithIntervalInSeconds {
            /**
             * Specifies the interval between probes, in seconds.
             * @param seconds number of seconds
             * @return the next stage of the definition
             */
            WithAttach withIntervalInSeconds(int seconds);
        }

        /**
         * The stage of the TCP probe definition allowing to specify the number of unsuccessful probes before failure is determined.
         * @param  the stage of the parent definition to return to after attaching this definition
         */
        interface WithNumberOfProbes {
            /**
             * Specifies the number of unsuccessful probes before failure is determined.
             * @param probes number of probes
             * @return the next stage of the definition
             */
            WithAttach withNumberOfProbes(int probes);
        }

        /** The final stage of the probe definition.
         * 

* At this stage, any remaining optional settings can be specified, or the probe definition * can be attached to the parent load balancer definition. * @param the stage of the parent definition to return to after attaching this definition */ interface WithAttach extends Attachable.InDefinition, WithIntervalInSeconds, WithNumberOfProbes { } } /** The entirety of a probe definition. * @param the stage of the parent definition to return to after attaching this definition */ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithAttach, DefinitionStages.WithPort { } /** * Grouping of probe update stages. */ interface UpdateStages { /** * The stage of the TCP probe update allowing to modify the port number to monitor. */ interface WithPort { /** * Specifies the port number to call for health monitoring. * @param port a port number * @return the next stage of the update */ Update withPort(int port); } /** * The stage of the TCP probe update allowing to modify the probe interval. */ interface WithIntervalInSeconds { /** * Specifies the interval between probes, in seconds. * @param seconds number of seconds * @return the next stage of the update */ Update withIntervalInSeconds(int seconds); } /** * The stage of the TCP probe update allowing to modify the number of unsuccessful probes before failure is determined. */ interface WithNumberOfProbes { /** * Specifies the number of unsuccessful probes before failure is determined. * @param probes number of probes * @return the next stage of the update */ Update withNumberOfProbes(int probes); } } /** * The entirety of a probe update as part of a load balancer update. */ interface Update extends Settable, UpdateStages.WithPort, UpdateStages.WithIntervalInSeconds, UpdateStages.WithNumberOfProbes { } /** * Grouping of probe definition stages applicable as part of a load balancer update. */ interface UpdateDefinitionStages { /** * The first stage of the probe definition. * @param the stage of the parent definition to return to after attaching this definition */ interface Blank extends WithPort { } /** * The stage of the TCP probe definition allowing to specify the port number to monitor. * @param the parent resource type */ interface WithPort { /** * Specifies the port number to call for health monitoring. * @param port a port number * @return the next stage of the definition */ WithAttach withPort(int port); } /** * The stage of the TCP probe definition allowing to specify the probe interval. * @param the parent resource type */ interface WithIntervalInSeconds { /** * Specifies the interval between probes, in seconds. * @param seconds number of seconds * @return the next stage of the definition */ WithAttach withIntervalInSeconds(int seconds); } /** * The stage of the TCP probe definition allowing to specify the number of unsuccessful probes before failure is determined. * @param the parent resource type */ interface WithNumberOfProbes { /** * Specifies the number of unsuccessful probes before failure is determined. * @param probes number of probes * @return the next stage of the definition */ WithAttach withNumberOfProbes(int probes); } /** The final stage of the probe definition. *

* At this stage, any remaining optional settings can be specified, or the probe definition * can be attached to the parent load balancer definition. * @param the stage of the parent definition to return to after attaching this definition */ interface WithAttach extends Attachable.InUpdate, WithNumberOfProbes, WithIntervalInSeconds { } } /** The entirety of a probe definition as part of a load balancer update. * @param the stage of the parent definition to return to after attaching this definition */ interface UpdateDefinition extends UpdateDefinitionStages.Blank, UpdateDefinitionStages.WithAttach, UpdateDefinitionStages.WithPort { } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy