/**
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for
* license information.
*
* Code generated by Microsoft (R) AutoRest Code Generator.
*/
package com.microsoft.azure.management.appservice;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* Routing rules for ramp up testing. This rule allows to redirect static
* traffic % to a slot or to gradually change routing % based on performance.
*/
public class RampUpRule {
/**
* Hostname of a slot to which the traffic will be redirected if decided
* to. E.g. myapp-stage.azurewebsites.net.
*/
@JsonProperty(value = "actionHostName")
private String actionHostName;
/**
* Percentage of the traffic which will be redirected to
* <code>ActionHostName</code>.
*/
@JsonProperty(value = "reroutePercentage")
private Double reroutePercentage;
/**
* In auto ramp up scenario this is the step to to add/remove from
* <code>ReroutePercentage</code> until it reaches
* <code>MinReroutePercentage</code> or
* <code>MaxReroutePercentage</code>. Site metrics are checked
* every N minutes specificed in
* <code>ChangeIntervalInMinutes</code>.
* Custom decision algorithm can be provided in TiPCallback site extension
* which URL can be specified in
* <code>ChangeDecisionCallbackUrl</code>.
*/
@JsonProperty(value = "changeStep")
private Double changeStep;
/**
* Specifies interval in mimuntes to reevaluate ReroutePercentage.
*/
@JsonProperty(value = "changeIntervalInMinutes")
private Integer changeIntervalInMinutes;
/**
* Specifies lower boundary above which ReroutePercentage will stay.
*/
@JsonProperty(value = "minReroutePercentage")
private Double minReroutePercentage;
/**
* Specifies upper boundary below which ReroutePercentage will stay.
*/
@JsonProperty(value = "maxReroutePercentage")
private Double maxReroutePercentage;
/**
* Custom decision algorithm can be provided in TiPCallback site extension
* which URL can be specified. See TiPCallback site extension for the
* scaffold and contracts.
* https://www.siteextensions.net/packages/TiPCallback/.
*/
@JsonProperty(value = "changeDecisionCallbackUrl")
private String changeDecisionCallbackUrl;
/**
* Name of the routing rule. The recommended name would be to point to the
* slot which will receive the traffic in the experiment.
*/
@JsonProperty(value = "name")
private String name;
/**
* Get the actionHostName value.
*
* @return the actionHostName value
*/
public String actionHostName() {
return this.actionHostName;
}
/**
* Set the actionHostName value.
*
* @param actionHostName the actionHostName value to set
* @return the RampUpRule object itself.
*/
public RampUpRule withActionHostName(String actionHostName) {
this.actionHostName = actionHostName;
return this;
}
/**
* Get the reroutePercentage value.
*
* @return the reroutePercentage value
*/
public Double reroutePercentage() {
return this.reroutePercentage;
}
/**
* Set the reroutePercentage value.
*
* @param reroutePercentage the reroutePercentage value to set
* @return the RampUpRule object itself.
*/
public RampUpRule withReroutePercentage(Double reroutePercentage) {
this.reroutePercentage = reroutePercentage;
return this;
}
/**
* Get the changeStep value.
*
* @return the changeStep value
*/
public Double changeStep() {
return this.changeStep;
}
/**
* Set the changeStep value.
*
* @param changeStep the changeStep value to set
* @return the RampUpRule object itself.
*/
public RampUpRule withChangeStep(Double changeStep) {
this.changeStep = changeStep;
return this;
}
/**
* Get the changeIntervalInMinutes value.
*
* @return the changeIntervalInMinutes value
*/
public Integer changeIntervalInMinutes() {
return this.changeIntervalInMinutes;
}
/**
* Set the changeIntervalInMinutes value.
*
* @param changeIntervalInMinutes the changeIntervalInMinutes value to set
* @return the RampUpRule object itself.
*/
public RampUpRule withChangeIntervalInMinutes(Integer changeIntervalInMinutes) {
this.changeIntervalInMinutes = changeIntervalInMinutes;
return this;
}
/**
* Get the minReroutePercentage value.
*
* @return the minReroutePercentage value
*/
public Double minReroutePercentage() {
return this.minReroutePercentage;
}
/**
* Set the minReroutePercentage value.
*
* @param minReroutePercentage the minReroutePercentage value to set
* @return the RampUpRule object itself.
*/
public RampUpRule withMinReroutePercentage(Double minReroutePercentage) {
this.minReroutePercentage = minReroutePercentage;
return this;
}
/**
* Get the maxReroutePercentage value.
*
* @return the maxReroutePercentage value
*/
public Double maxReroutePercentage() {
return this.maxReroutePercentage;
}
/**
* Set the maxReroutePercentage value.
*
* @param maxReroutePercentage the maxReroutePercentage value to set
* @return the RampUpRule object itself.
*/
public RampUpRule withMaxReroutePercentage(Double maxReroutePercentage) {
this.maxReroutePercentage = maxReroutePercentage;
return this;
}
/**
* Get the changeDecisionCallbackUrl value.
*
* @return the changeDecisionCallbackUrl value
*/
public String changeDecisionCallbackUrl() {
return this.changeDecisionCallbackUrl;
}
/**
* Set the changeDecisionCallbackUrl value.
*
* @param changeDecisionCallbackUrl the changeDecisionCallbackUrl value to set
* @return the RampUpRule object itself.
*/
public RampUpRule withChangeDecisionCallbackUrl(String changeDecisionCallbackUrl) {
this.changeDecisionCallbackUrl = changeDecisionCallbackUrl;
return this;
}
/**
* Get the name value.
*
* @return the name value
*/
public String name() {
return this.name;
}
/**
* Set the name value.
*
* @param name the name value to set
* @return the RampUpRule object itself.
*/
public RampUpRule withName(String name) {
this.name = name;
return this;
}
}