ApplicationGatewayOnDemandProbe.java
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.
package com.azure.resourcemanager.network.models;
import com.azure.core.annotation.Fluent;
import com.azure.core.management.SubResource;
import com.azure.core.util.logging.ClientLogger;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
/** Details of on demand test probe request. */
@Fluent
public final class ApplicationGatewayOnDemandProbe {
@JsonIgnore private final ClientLogger logger = new ClientLogger(ApplicationGatewayOnDemandProbe.class);
/*
* The protocol used for the probe.
*/
@JsonProperty(value = "protocol")
private ApplicationGatewayProtocol protocol;
/*
* Host name to send the probe to.
*/
@JsonProperty(value = "host")
private String host;
/*
* Relative path of probe. Valid path starts from '/'. Probe is sent to
* <Protocol>://<host>:<port><path>.
*/
@JsonProperty(value = "path")
private String path;
/*
* The probe timeout in seconds. Probe marked as failed if valid response
* is not received with this timeout period. Acceptable values are from 1
* second to 86400 seconds.
*/
@JsonProperty(value = "timeout")
private Integer timeout;
/*
* Whether the host header should be picked from the backend http settings.
* Default value is false.
*/
@JsonProperty(value = "pickHostNameFromBackendHttpSettings")
private Boolean pickHostnameFromBackendHttpSettings;
/*
* Criterion for classifying a healthy probe response.
*/
@JsonProperty(value = "match")
private ApplicationGatewayProbeHealthResponseMatch match;
/*
* Reference to backend pool of application gateway to which probe request
* will be sent.
*/
@JsonProperty(value = "backendAddressPool")
private SubResource backendAddressPool;
/*
* Reference to backend http setting of application gateway to be used for
* test probe.
*/
@JsonProperty(value = "backendHttpSettings")
private SubResource backendHttpSettings;
/**
* Get the protocol property: The protocol used for the probe.
*
* @return the protocol value.
*/
public ApplicationGatewayProtocol protocol() {
return this.protocol;
}
/**
* Set the protocol property: The protocol used for the probe.
*
* @param protocol the protocol value to set.
* @return the ApplicationGatewayOnDemandProbe object itself.
*/
public ApplicationGatewayOnDemandProbe withProtocol(ApplicationGatewayProtocol protocol) {
this.protocol = protocol;
return this;
}
/**
* Get the host property: Host name to send the probe to.
*
* @return the host value.
*/
public String host() {
return this.host;
}
/**
* Set the host property: Host name to send the probe to.
*
* @param host the host value to set.
* @return the ApplicationGatewayOnDemandProbe object itself.
*/
public ApplicationGatewayOnDemandProbe withHost(String host) {
this.host = host;
return this;
}
/**
* Get the path property: Relative path of probe. Valid path starts from '/'. Probe is sent to
* <Protocol>://<host>:<port><path>.
*
* @return the path value.
*/
public String path() {
return this.path;
}
/**
* Set the path property: Relative path of probe. Valid path starts from '/'. Probe is sent to
* <Protocol>://<host>:<port><path>.
*
* @param path the path value to set.
* @return the ApplicationGatewayOnDemandProbe object itself.
*/
public ApplicationGatewayOnDemandProbe withPath(String path) {
this.path = path;
return this;
}
/**
* Get the timeout property: The probe timeout in seconds. Probe marked as failed if valid response is not received
* with this timeout period. Acceptable values are from 1 second to 86400 seconds.
*
* @return the timeout value.
*/
public Integer timeout() {
return this.timeout;
}
/**
* Set the timeout property: The probe timeout in seconds. Probe marked as failed if valid response is not received
* with this timeout period. Acceptable values are from 1 second to 86400 seconds.
*
* @param timeout the timeout value to set.
* @return the ApplicationGatewayOnDemandProbe object itself.
*/
public ApplicationGatewayOnDemandProbe withTimeout(Integer timeout) {
this.timeout = timeout;
return this;
}
/**
* Get the pickHostnameFromBackendHttpSettings property: Whether the host header should be picked from the backend
* http settings. Default value is false.
*
* @return the pickHostnameFromBackendHttpSettings value.
*/
public Boolean pickHostnameFromBackendHttpSettings() {
return this.pickHostnameFromBackendHttpSettings;
}
/**
* Set the pickHostnameFromBackendHttpSettings property: Whether the host header should be picked from the backend
* http settings. Default value is false.
*
* @param pickHostnameFromBackendHttpSettings the pickHostnameFromBackendHttpSettings value to set.
* @return the ApplicationGatewayOnDemandProbe object itself.
*/
public ApplicationGatewayOnDemandProbe withPickHostnameFromBackendHttpSettings(
Boolean pickHostnameFromBackendHttpSettings) {
this.pickHostnameFromBackendHttpSettings = pickHostnameFromBackendHttpSettings;
return this;
}
/**
* Get the match property: Criterion for classifying a healthy probe response.
*
* @return the match value.
*/
public ApplicationGatewayProbeHealthResponseMatch match() {
return this.match;
}
/**
* Set the match property: Criterion for classifying a healthy probe response.
*
* @param match the match value to set.
* @return the ApplicationGatewayOnDemandProbe object itself.
*/
public ApplicationGatewayOnDemandProbe withMatch(ApplicationGatewayProbeHealthResponseMatch match) {
this.match = match;
return this;
}
/**
* Get the backendAddressPool property: Reference to backend pool of application gateway to which probe request will
* be sent.
*
* @return the backendAddressPool value.
*/
public SubResource backendAddressPool() {
return this.backendAddressPool;
}
/**
* Set the backendAddressPool property: Reference to backend pool of application gateway to which probe request will
* be sent.
*
* @param backendAddressPool the backendAddressPool value to set.
* @return the ApplicationGatewayOnDemandProbe object itself.
*/
public ApplicationGatewayOnDemandProbe withBackendAddressPool(SubResource backendAddressPool) {
this.backendAddressPool = backendAddressPool;
return this;
}
/**
* Get the backendHttpSettings property: Reference to backend http setting of application gateway to be used for
* test probe.
*
* @return the backendHttpSettings value.
*/
public SubResource backendHttpSettings() {
return this.backendHttpSettings;
}
/**
* Set the backendHttpSettings property: Reference to backend http setting of application gateway to be used for
* test probe.
*
* @param backendHttpSettings the backendHttpSettings value to set.
* @return the ApplicationGatewayOnDemandProbe object itself.
*/
public ApplicationGatewayOnDemandProbe withBackendHttpSettings(SubResource backendHttpSettings) {
this.backendHttpSettings = backendHttpSettings;
return this;
}
/**
* Validates the instance.
*
* @throws IllegalArgumentException thrown if the instance is not valid.
*/
public void validate() {
if (match() != null) {
match().validate();
}
}
}