
com.microsoft.azure.management.network.ApplicationGatewayBackendHttpConfiguration 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.Beta;
import com.microsoft.azure.management.apigeneration.Beta.SinceVersion;
import com.microsoft.azure.management.apigeneration.Fluent;
import com.microsoft.azure.management.apigeneration.Method;
import com.microsoft.azure.management.network.implementation.ApplicationGatewayBackendHttpSettingsInner;
import com.microsoft.azure.management.network.model.HasPort;
import com.microsoft.azure.management.network.model.HasProtocol;
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;
/**
* A client-side representation of an application gateway's backend HTTP configuration.
*/
@Fluent()
public interface ApplicationGatewayBackendHttpConfiguration extends
HasInner,
ChildResource,
HasProtocol,
HasPort {
/**
* @return true if cookie based affinity (sticky sessions) is enabled, else false
*/
boolean cookieBasedAffinity();
/**
* @return HTTP request timeout in seconds. Requests will fail if no response is received within the specified time.
*/
int requestTimeout();
/**
* @return the probe associated with this backend
*/
@Beta(SinceVersion.V1_1_0)
ApplicationGatewayProbe probe();
//TODO Map authenticationCertificates()
/**
* Grouping of application gateway backend HTTP configuration stages.
*/
interface DefinitionStages {
/**
* The first stage of an application gateway backend HTTP configuration.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface Blank extends WithAttach {
}
/**
* The stage of an application gateway backend HTTP configuration allowing to specify the port number.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface WithPort extends HasPort.DefinitionStages.WithPort> {
}
/**
* The stage of an application gateway backend HTTP configuration allowing to specify the protocol.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface WithProtocol extends HasProtocol.DefinitionStages.WithProtocol, ApplicationGatewayProtocol> {
}
/**
* The stage of an application gateway backend HTTP configuration allowing to enable cookie based affinity.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface WithAffinity {
/**
* Enables cookie based affinity.
* @return the next stage of the update
*/
@Method
WithAttach withCookieBasedAffinity();
}
/**
* The stage of an application gateway backend HTTP configuration allowing to specify the request timeout.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface WithRequestTimeout {
/**
* Specifies the request timeout.
* @param seconds a number of seconds
* @return the next stage of the definition
*/
WithAttach withRequestTimeout(int seconds);
}
/**
* The stage of an application gateway backend HTTP configuration allowing to associate an existing probe.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface WithProbe {
/**
* Specifies an existing probe on this application gateway to associate with this backend.
*
* If the probe with the specified name does not yet exist, it must be defined separately in the optional part
* of the application gateway definition. This only adds a reference to the probe by its name.
* @param name the name of an existing probe
* @return the next stage of the definition
*/
@Beta(SinceVersion.V1_1_0)
WithAttach withProbe(String name);
}
/** The final stage of an application gateway backend HTTP configuration.
*
* At this stage, any remaining optional settings can be specified, or the definition
* can be attached to the parent application gateway definition using {@link WithAttach#attach()}.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface WithAttach extends
Attachable.InDefinition,
WithPort,
WithAffinity,
WithProtocol,
WithRequestTimeout,
WithProbe {
}
}
/** The entirety of an application gateway backend HTTP configuration definition.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface Definition extends
DefinitionStages.Blank,
DefinitionStages.WithAttach {
}
/**
* Grouping of application gateway backend HTTP configuration update stages.
*/
interface UpdateStages {
/**
* The stage of an application gateway backend HTTP configuration allowing to specify the port number.
*/
interface WithPort extends HasPort.UpdateStages.WithPort {
}
/**
* The stage of an application gateway backend HTTP configuration allowing to enable or disable cookie based affinity.
*/
interface WithAffinity {
/**
* Enables cookie based affinity.
* @return the next stage of the update
*/
@Method
Update withCookieBasedAffinity();
/**
* Disables cookie based affinity.
* @return the next stage of the update.
*/
@Method
Update withoutCookieBasedAffinity();
}
/**
* The stage of an application gateway backend HTTP configuration allowing to specify the protocol.
*/
interface WithProtocol extends HasProtocol.UpdateStages.WithProtocol {
}
/**
* The stage of an application gateway backend HTTP configuration allowing to specify the request timeout.
*/
interface WithRequestTimeout {
/**
* Specifies the request timeout.
* @param seconds a number of seconds
* @return the next stage of the definition
*/
Update withRequestTimeout(int seconds);
}
/**
* The stage of an application gateway backend HTTP configuration allowing to associate an existing probe.
*/
interface WithProbe {
/**
* Specifies an existing probe on this application gateway to associate with this backend.
*
* If the probe with the specified name does not yet exist, it must be defined separately in the optional part
* of the application gateway definition. This only adds a reference to the probe by its name.
* @param name the name of an existing probe
* @return the next stage of the update
*/
@Beta(SinceVersion.V1_1_0)
Update withProbe(String name);
/**
* Removes the association with a probe.
* @return the next stage of the update
*/
@Beta(SinceVersion.V1_1_0)
@Method
Update withoutProbe();
}
}
/**
* The entirety of an application gateway backend HTTP configuration update as part of an application gateway update.
*/
interface Update extends
Settable,
UpdateStages.WithPort,
UpdateStages.WithAffinity,
UpdateStages.WithProtocol,
UpdateStages.WithRequestTimeout,
UpdateStages.WithProbe {
}
/**
* Grouping of application gateway backend HTTP configuration definition stages applicable as part of an application gateway update.
*/
interface UpdateDefinitionStages {
/**
* The first stage of an application gateway backend HTTP configuration definition.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface Blank extends WithAttach {
}
/** The final stage of an application gateway backend HTTP configuration definition.
*
* At this stage, any remaining optional settings can be specified, or the definition
* can be attached to the parent application gateway definition using {@link WithAttach#attach()}.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface WithAttach extends
Attachable.InUpdate,
WithPort,
WithAffinity,
WithProtocol,
WithRequestTimeout {
}
/**
* The stage of an application gateway backend HTTP configuration allowing to specify the port number.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface WithPort extends HasPort.UpdateDefinitionStages.WithPort> {
}
/**
* The stage of an application gateway backend HTTP configuration allowing to specify the request timeout.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface WithRequestTimeout {
/**
* Specifies the request timeout.
* @param seconds a number of seconds
* @return the next stage of the definition
*/
WithAttach withRequestTimeout(int seconds);
}
/**
* The stage of an application gateway backend HTTP configuration allowing to specify the protocol.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface WithProtocol extends HasProtocol.UpdateDefinitionStages.WithProtocol, ApplicationGatewayProtocol> {
}
/**
* The stage of an application gateway backend HTTP configuration allowing to enable or disable cookie based affinity.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface WithAffinity {
/**
* Enables cookie based affinity.
* @return the next stage of the update
*/
@Method
WithAttach withCookieBasedAffinity();
/**
* Disables cookie based affinity.
* @return the next stage of the update
*/
@Method
WithAttach withoutCookieBasedAffinity();
}
/**
* The stage of an application gateway backend HTTP configuration allowing to associate an existing probe.
* @param the stage of the parent application gateway update to return to after attaching this definition
*/
interface WithProbe {
/**
* Specifies an existing probe on this application gateway to associate with this backend.
*
* If the probe with the specified name does not yet exist, it must be defined separately in the optional part
* of the application gateway definition. This only adds a reference to the probe by its name.
* @param name the name of an existing probe
* @return the next stage of the definition
*/
@Beta(SinceVersion.V1_1_0)
WithAttach withProbe(String name);
}
}
/** The entirety of an application gateway backend HTTP configuration definition as part of an application gateway update.
* @param the stage of the parent application gateway definition to return to after attaching this definition
*/
interface UpdateDefinition extends
UpdateDefinitionStages.Blank,
UpdateDefinitionStages.WithAttach {
}
}