com.oracle.bmc.loadbalancer.model.CreateLoadBalancerDetails Maven / Gradle / Ivy
Show all versions of oci-java-sdk-loadbalancer Show documentation
/**
* Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
* This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
*/
package com.oracle.bmc.loadbalancer.model;
/**
* The configuration details for creating a load balancer.
*
* *Warning:** Oracle recommends that you avoid using any confidential information when you
* supply string values using the API.
* Note: Objects should always be created or deserialized using the {@link Builder}. This model
* distinguishes fields that are {@code null} because they are unset from fields that are explicitly
* set to {@code null}. This is done in the setter methods of the {@link Builder}, which maintain a
* set of all explicitly set fields called {@link Builder#__explicitlySet__}. The {@link
* #hashCode()} and {@link #equals(Object)} methods are implemented to take the explicitly set
* fields into account. The constructor, on the other hand, does not take the explicitly set fields
* into account (since the constructor cannot distinguish explicit {@code null} from unset {@code
* null}).
*/
@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20170115")
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
builder = CreateLoadBalancerDetails.Builder.class)
@com.fasterxml.jackson.annotation.JsonFilter(
com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
public final class CreateLoadBalancerDetails
extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
@Deprecated
@java.beans.ConstructorProperties({
"compartmentId",
"displayName",
"shapeName",
"shapeDetails",
"isPrivate",
"isDeleteProtectionEnabled",
"ipMode",
"reservedIps",
"listeners",
"hostnames",
"backendSets",
"networkSecurityGroupIds",
"subnetIds",
"certificates",
"sslCipherSuites",
"pathRouteSets",
"freeformTags",
"definedTags",
"ruleSets"
})
public CreateLoadBalancerDetails(
String compartmentId,
String displayName,
String shapeName,
ShapeDetails shapeDetails,
Boolean isPrivate,
Boolean isDeleteProtectionEnabled,
IpMode ipMode,
java.util.List reservedIps,
java.util.Map listeners,
java.util.Map hostnames,
java.util.Map backendSets,
java.util.List networkSecurityGroupIds,
java.util.List subnetIds,
java.util.Map certificates,
java.util.Map sslCipherSuites,
java.util.Map pathRouteSets,
java.util.Map freeformTags,
java.util.Map> definedTags,
java.util.Map ruleSets) {
super();
this.compartmentId = compartmentId;
this.displayName = displayName;
this.shapeName = shapeName;
this.shapeDetails = shapeDetails;
this.isPrivate = isPrivate;
this.isDeleteProtectionEnabled = isDeleteProtectionEnabled;
this.ipMode = ipMode;
this.reservedIps = reservedIps;
this.listeners = listeners;
this.hostnames = hostnames;
this.backendSets = backendSets;
this.networkSecurityGroupIds = networkSecurityGroupIds;
this.subnetIds = subnetIds;
this.certificates = certificates;
this.sslCipherSuites = sslCipherSuites;
this.pathRouteSets = pathRouteSets;
this.freeformTags = freeformTags;
this.definedTags = definedTags;
this.ruleSets = ruleSets;
}
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
public static class Builder {
/**
* The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the
* compartment in which to create the load balancer.
*/
@com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
private String compartmentId;
/**
* The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the
* compartment in which to create the load balancer.
*
* @param compartmentId the value to set
* @return this builder
*/
public Builder compartmentId(String compartmentId) {
this.compartmentId = compartmentId;
this.__explicitlySet__.add("compartmentId");
return this;
}
/**
* A user-friendly name. It does not have to be unique, and it is changeable. Avoid entering
* confidential information.
*
* Example: {@code example_load_balancer}
*/
@com.fasterxml.jackson.annotation.JsonProperty("displayName")
private String displayName;
/**
* A user-friendly name. It does not have to be unique, and it is changeable. Avoid entering
* confidential information.
*
*
Example: {@code example_load_balancer}
*
* @param displayName the value to set
* @return this builder
*/
public Builder displayName(String displayName) {
this.displayName = displayName;
this.__explicitlySet__.add("displayName");
return this;
}
/**
* A template that determines the total pre-provisioned bandwidth (ingress plus egress). To
* get a list of available shapes, use the {@link #listShapes(ListShapesRequest) listShapes}
* operation.
*
*
Example: {@code flexible} NOTE: After May 2023, Fixed shapes - 10Mbps, 100Mbps,
* 400Mbps, 8000Mbps would be deprecated and only shape allowed would be {@code Flexible}
*/
@com.fasterxml.jackson.annotation.JsonProperty("shapeName")
private String shapeName;
/**
* A template that determines the total pre-provisioned bandwidth (ingress plus egress). To
* get a list of available shapes, use the {@link #listShapes(ListShapesRequest) listShapes}
* operation.
*
*
Example: {@code flexible} NOTE: After May 2023, Fixed shapes - 10Mbps, 100Mbps,
* 400Mbps, 8000Mbps would be deprecated and only shape allowed would be {@code Flexible}
*
* @param shapeName the value to set
* @return this builder
*/
public Builder shapeName(String shapeName) {
this.shapeName = shapeName;
this.__explicitlySet__.add("shapeName");
return this;
}
/**
* The configuration details to create load balancer using Flexible shape. This is required
* only if shapeName is {@code Flexible}.
*/
@com.fasterxml.jackson.annotation.JsonProperty("shapeDetails")
private ShapeDetails shapeDetails;
/**
* The configuration details to create load balancer using Flexible shape. This is required
* only if shapeName is {@code Flexible}.
*
* @param shapeDetails the value to set
* @return this builder
*/
public Builder shapeDetails(ShapeDetails shapeDetails) {
this.shapeDetails = shapeDetails;
this.__explicitlySet__.add("shapeDetails");
return this;
}
/**
* Whether the load balancer has a VCN-local (private) IP address.
*
*
If "true", the service assigns a private IP address to the load balancer.
*
*
If "false", the service assigns a public IP address to the load balancer.
*
*
A public load balancer is accessible from the internet, depending on your VCN's
* [security list
* rules](https://docs.cloud.oracle.com/Content/Network/Concepts/securitylists.htm). For
* more information about public and private load balancers, see [How Load Balancing
* Works](https://docs.cloud.oracle.com/Content/Balance/Concepts/balanceoverview.htm#how-load-balancing-works).
*
*
Example: {@code true}
*/
@com.fasterxml.jackson.annotation.JsonProperty("isPrivate")
private Boolean isPrivate;
/**
* Whether the load balancer has a VCN-local (private) IP address.
*
*
If "true", the service assigns a private IP address to the load balancer.
*
*
If "false", the service assigns a public IP address to the load balancer.
*
*
A public load balancer is accessible from the internet, depending on your VCN's
* [security list
* rules](https://docs.cloud.oracle.com/Content/Network/Concepts/securitylists.htm). For
* more information about public and private load balancers, see [How Load Balancing
* Works](https://docs.cloud.oracle.com/Content/Balance/Concepts/balanceoverview.htm#how-load-balancing-works).
*
*
Example: {@code true}
*
* @param isPrivate the value to set
* @return this builder
*/
public Builder isPrivate(Boolean isPrivate) {
this.isPrivate = isPrivate;
this.__explicitlySet__.add("isPrivate");
return this;
}
/**
* Whether or not the load balancer has delete protection enabled.
*
*
If "true", the loadbalancer will be protected against deletion if configured to accept
* traffic.
*
*
If "false", the loadbalancer will not be protected against deletion.
*
*
Delete protection will not be enabled unless a value of "true" is provided. Example:
* {@code true}
*/
@com.fasterxml.jackson.annotation.JsonProperty("isDeleteProtectionEnabled")
private Boolean isDeleteProtectionEnabled;
/**
* Whether or not the load balancer has delete protection enabled.
*
*
If "true", the loadbalancer will be protected against deletion if configured to accept
* traffic.
*
*
If "false", the loadbalancer will not be protected against deletion.
*
*
Delete protection will not be enabled unless a value of "true" is provided. Example:
* {@code true}
*
* @param isDeleteProtectionEnabled the value to set
* @return this builder
*/
public Builder isDeleteProtectionEnabled(Boolean isDeleteProtectionEnabled) {
this.isDeleteProtectionEnabled = isDeleteProtectionEnabled;
this.__explicitlySet__.add("isDeleteProtectionEnabled");
return this;
}
/**
* Whether the load balancer has an IPv4 or IPv6 IP address.
*
*
If "IPV4", the service assigns an IPv4 address and the load balancer supports IPv4
* traffic.
*
*
If "IPV6", the service assigns an IPv6 address and the load balancer supports IPv6
* traffic.
*
*
Example: "ipMode":"IPV6"
*/
@com.fasterxml.jackson.annotation.JsonProperty("ipMode")
private IpMode ipMode;
/**
* Whether the load balancer has an IPv4 or IPv6 IP address.
*
*
If "IPV4", the service assigns an IPv4 address and the load balancer supports IPv4
* traffic.
*
*
If "IPV6", the service assigns an IPv6 address and the load balancer supports IPv6
* traffic.
*
*
Example: "ipMode":"IPV6"
*
* @param ipMode the value to set
* @return this builder
*/
public Builder ipMode(IpMode ipMode) {
this.ipMode = ipMode;
this.__explicitlySet__.add("ipMode");
return this;
}
/** An array of reserved Ips. */
@com.fasterxml.jackson.annotation.JsonProperty("reservedIps")
private java.util.List reservedIps;
/**
* An array of reserved Ips.
*
* @param reservedIps the value to set
* @return this builder
*/
public Builder reservedIps(java.util.List reservedIps) {
this.reservedIps = reservedIps;
this.__explicitlySet__.add("reservedIps");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("listeners")
private java.util.Map listeners;
public Builder listeners(java.util.Map listeners) {
this.listeners = listeners;
this.__explicitlySet__.add("listeners");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("hostnames")
private java.util.Map hostnames;
public Builder hostnames(java.util.Map hostnames) {
this.hostnames = hostnames;
this.__explicitlySet__.add("hostnames");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("backendSets")
private java.util.Map backendSets;
public Builder backendSets(java.util.Map backendSets) {
this.backendSets = backendSets;
this.__explicitlySet__.add("backendSets");
return this;
}
/**
* An array of NSG
* [OCIDs](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm)
* associated with this load balancer.
*
* During the load balancer's creation, the service adds the new load balancer to the
* specified NSGs.
*
*
The benefits of using NSGs with the load balancer include:
*
*
NSGs define network security rules to govern ingress and egress traffic for the load
* balancer.
*
*
The network security rules of other resources can reference the NSGs associated with
* the load balancer to ensure access.
*
*
Example: {@code ["ocid1.nsg.oc1.phx.unique_ID"]}
*/
@com.fasterxml.jackson.annotation.JsonProperty("networkSecurityGroupIds")
private java.util.List networkSecurityGroupIds;
/**
* An array of NSG
* [OCIDs](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm)
* associated with this load balancer.
*
* During the load balancer's creation, the service adds the new load balancer to the
* specified NSGs.
*
*
The benefits of using NSGs with the load balancer include:
*
*
NSGs define network security rules to govern ingress and egress traffic for the load
* balancer.
*
*
The network security rules of other resources can reference the NSGs associated with
* the load balancer to ensure access.
*
*
Example: {@code ["ocid1.nsg.oc1.phx.unique_ID"]}
*
* @param networkSecurityGroupIds the value to set
* @return this builder
*/
public Builder networkSecurityGroupIds(java.util.List networkSecurityGroupIds) {
this.networkSecurityGroupIds = networkSecurityGroupIds;
this.__explicitlySet__.add("networkSecurityGroupIds");
return this;
}
/**
* An array of subnet
* [OCIDs](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
*/
@com.fasterxml.jackson.annotation.JsonProperty("subnetIds")
private java.util.List subnetIds;
/**
* An array of subnet
* [OCIDs](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
*
* @param subnetIds the value to set
* @return this builder
*/
public Builder subnetIds(java.util.List subnetIds) {
this.subnetIds = subnetIds;
this.__explicitlySet__.add("subnetIds");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("certificates")
private java.util.Map certificates;
public Builder certificates(java.util.Map certificates) {
this.certificates = certificates;
this.__explicitlySet__.add("certificates");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("sslCipherSuites")
private java.util.Map sslCipherSuites;
public Builder sslCipherSuites(
java.util.Map sslCipherSuites) {
this.sslCipherSuites = sslCipherSuites;
this.__explicitlySet__.add("sslCipherSuites");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("pathRouteSets")
private java.util.Map pathRouteSets;
public Builder pathRouteSets(java.util.Map pathRouteSets) {
this.pathRouteSets = pathRouteSets;
this.__explicitlySet__.add("pathRouteSets");
return this;
}
/**
* Free-form tags for this resource. Each tag is a simple key-value pair with no predefined
* name, type, or namespace. For more information, see [Resource
* Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
*
* Example: {@code {"Department": "Finance"}}
*/
@com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
private java.util.Map freeformTags;
/**
* Free-form tags for this resource. Each tag is a simple key-value pair with no predefined
* name, type, or namespace. For more information, see [Resource
* Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
*
* Example: {@code {"Department": "Finance"}}
*
* @param freeformTags the value to set
* @return this builder
*/
public Builder freeformTags(java.util.Map freeformTags) {
this.freeformTags = freeformTags;
this.__explicitlySet__.add("freeformTags");
return this;
}
/**
* Defined tags for this resource. Each key is predefined and scoped to a namespace. For
* more information, see [Resource
* Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
*
* Example: {@code {"Operations": {"CostCenter": "42"}}}
*/
@com.fasterxml.jackson.annotation.JsonProperty("definedTags")
private java.util.Map> definedTags;
/**
* Defined tags for this resource. Each key is predefined and scoped to a namespace. For
* more information, see [Resource
* Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
*
* Example: {@code {"Operations": {"CostCenter": "42"}}}
*
* @param definedTags the value to set
* @return this builder
*/
public Builder definedTags(
java.util.Map> definedTags) {
this.definedTags = definedTags;
this.__explicitlySet__.add("definedTags");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("ruleSets")
private java.util.Map ruleSets;
public Builder ruleSets(java.util.Map ruleSets) {
this.ruleSets = ruleSets;
this.__explicitlySet__.add("ruleSets");
return this;
}
@com.fasterxml.jackson.annotation.JsonIgnore
private final java.util.Set __explicitlySet__ = new java.util.HashSet();
public CreateLoadBalancerDetails build() {
CreateLoadBalancerDetails model =
new CreateLoadBalancerDetails(
this.compartmentId,
this.displayName,
this.shapeName,
this.shapeDetails,
this.isPrivate,
this.isDeleteProtectionEnabled,
this.ipMode,
this.reservedIps,
this.listeners,
this.hostnames,
this.backendSets,
this.networkSecurityGroupIds,
this.subnetIds,
this.certificates,
this.sslCipherSuites,
this.pathRouteSets,
this.freeformTags,
this.definedTags,
this.ruleSets);
for (String explicitlySetProperty : this.__explicitlySet__) {
model.markPropertyAsExplicitlySet(explicitlySetProperty);
}
return model;
}
@com.fasterxml.jackson.annotation.JsonIgnore
public Builder copy(CreateLoadBalancerDetails model) {
if (model.wasPropertyExplicitlySet("compartmentId")) {
this.compartmentId(model.getCompartmentId());
}
if (model.wasPropertyExplicitlySet("displayName")) {
this.displayName(model.getDisplayName());
}
if (model.wasPropertyExplicitlySet("shapeName")) {
this.shapeName(model.getShapeName());
}
if (model.wasPropertyExplicitlySet("shapeDetails")) {
this.shapeDetails(model.getShapeDetails());
}
if (model.wasPropertyExplicitlySet("isPrivate")) {
this.isPrivate(model.getIsPrivate());
}
if (model.wasPropertyExplicitlySet("isDeleteProtectionEnabled")) {
this.isDeleteProtectionEnabled(model.getIsDeleteProtectionEnabled());
}
if (model.wasPropertyExplicitlySet("ipMode")) {
this.ipMode(model.getIpMode());
}
if (model.wasPropertyExplicitlySet("reservedIps")) {
this.reservedIps(model.getReservedIps());
}
if (model.wasPropertyExplicitlySet("listeners")) {
this.listeners(model.getListeners());
}
if (model.wasPropertyExplicitlySet("hostnames")) {
this.hostnames(model.getHostnames());
}
if (model.wasPropertyExplicitlySet("backendSets")) {
this.backendSets(model.getBackendSets());
}
if (model.wasPropertyExplicitlySet("networkSecurityGroupIds")) {
this.networkSecurityGroupIds(model.getNetworkSecurityGroupIds());
}
if (model.wasPropertyExplicitlySet("subnetIds")) {
this.subnetIds(model.getSubnetIds());
}
if (model.wasPropertyExplicitlySet("certificates")) {
this.certificates(model.getCertificates());
}
if (model.wasPropertyExplicitlySet("sslCipherSuites")) {
this.sslCipherSuites(model.getSslCipherSuites());
}
if (model.wasPropertyExplicitlySet("pathRouteSets")) {
this.pathRouteSets(model.getPathRouteSets());
}
if (model.wasPropertyExplicitlySet("freeformTags")) {
this.freeformTags(model.getFreeformTags());
}
if (model.wasPropertyExplicitlySet("definedTags")) {
this.definedTags(model.getDefinedTags());
}
if (model.wasPropertyExplicitlySet("ruleSets")) {
this.ruleSets(model.getRuleSets());
}
return this;
}
}
/** Create a new builder. */
public static Builder builder() {
return new Builder();
}
public Builder toBuilder() {
return new Builder().copy(this);
}
/**
* The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the
* compartment in which to create the load balancer.
*/
@com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
private final String compartmentId;
/**
* The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the
* compartment in which to create the load balancer.
*
* @return the value
*/
public String getCompartmentId() {
return compartmentId;
}
/**
* A user-friendly name. It does not have to be unique, and it is changeable. Avoid entering
* confidential information.
*
* Example: {@code example_load_balancer}
*/
@com.fasterxml.jackson.annotation.JsonProperty("displayName")
private final String displayName;
/**
* A user-friendly name. It does not have to be unique, and it is changeable. Avoid entering
* confidential information.
*
*
Example: {@code example_load_balancer}
*
* @return the value
*/
public String getDisplayName() {
return displayName;
}
/**
* A template that determines the total pre-provisioned bandwidth (ingress plus egress). To get
* a list of available shapes, use the {@link #listShapes(ListShapesRequest) listShapes}
* operation.
*
*
Example: {@code flexible} NOTE: After May 2023, Fixed shapes - 10Mbps, 100Mbps, 400Mbps,
* 8000Mbps would be deprecated and only shape allowed would be {@code Flexible}
*/
@com.fasterxml.jackson.annotation.JsonProperty("shapeName")
private final String shapeName;
/**
* A template that determines the total pre-provisioned bandwidth (ingress plus egress). To get
* a list of available shapes, use the {@link #listShapes(ListShapesRequest) listShapes}
* operation.
*
*
Example: {@code flexible} NOTE: After May 2023, Fixed shapes - 10Mbps, 100Mbps, 400Mbps,
* 8000Mbps would be deprecated and only shape allowed would be {@code Flexible}
*
* @return the value
*/
public String getShapeName() {
return shapeName;
}
/**
* The configuration details to create load balancer using Flexible shape. This is required only
* if shapeName is {@code Flexible}.
*/
@com.fasterxml.jackson.annotation.JsonProperty("shapeDetails")
private final ShapeDetails shapeDetails;
/**
* The configuration details to create load balancer using Flexible shape. This is required only
* if shapeName is {@code Flexible}.
*
* @return the value
*/
public ShapeDetails getShapeDetails() {
return shapeDetails;
}
/**
* Whether the load balancer has a VCN-local (private) IP address.
*
*
If "true", the service assigns a private IP address to the load balancer.
*
*
If "false", the service assigns a public IP address to the load balancer.
*
*
A public load balancer is accessible from the internet, depending on your VCN's [security
* list rules](https://docs.cloud.oracle.com/Content/Network/Concepts/securitylists.htm). For
* more information about public and private load balancers, see [How Load Balancing
* Works](https://docs.cloud.oracle.com/Content/Balance/Concepts/balanceoverview.htm#how-load-balancing-works).
*
*
Example: {@code true}
*/
@com.fasterxml.jackson.annotation.JsonProperty("isPrivate")
private final Boolean isPrivate;
/**
* Whether the load balancer has a VCN-local (private) IP address.
*
*
If "true", the service assigns a private IP address to the load balancer.
*
*
If "false", the service assigns a public IP address to the load balancer.
*
*
A public load balancer is accessible from the internet, depending on your VCN's [security
* list rules](https://docs.cloud.oracle.com/Content/Network/Concepts/securitylists.htm). For
* more information about public and private load balancers, see [How Load Balancing
* Works](https://docs.cloud.oracle.com/Content/Balance/Concepts/balanceoverview.htm#how-load-balancing-works).
*
*
Example: {@code true}
*
* @return the value
*/
public Boolean getIsPrivate() {
return isPrivate;
}
/**
* Whether or not the load balancer has delete protection enabled.
*
*
If "true", the loadbalancer will be protected against deletion if configured to accept
* traffic.
*
*
If "false", the loadbalancer will not be protected against deletion.
*
*
Delete protection will not be enabled unless a value of "true" is provided. Example:
* {@code true}
*/
@com.fasterxml.jackson.annotation.JsonProperty("isDeleteProtectionEnabled")
private final Boolean isDeleteProtectionEnabled;
/**
* Whether or not the load balancer has delete protection enabled.
*
*
If "true", the loadbalancer will be protected against deletion if configured to accept
* traffic.
*
*
If "false", the loadbalancer will not be protected against deletion.
*
*
Delete protection will not be enabled unless a value of "true" is provided. Example:
* {@code true}
*
* @return the value
*/
public Boolean getIsDeleteProtectionEnabled() {
return isDeleteProtectionEnabled;
}
/**
* Whether the load balancer has an IPv4 or IPv6 IP address.
*
*
If "IPV4", the service assigns an IPv4 address and the load balancer supports IPv4
* traffic.
*
*
If "IPV6", the service assigns an IPv6 address and the load balancer supports IPv6
* traffic.
*
*
Example: "ipMode":"IPV6"
*/
public enum IpMode implements com.oracle.bmc.http.internal.BmcEnum {
Ipv4("IPV4"),
Ipv6("IPV6"),
;
private final String value;
private static java.util.Map map;
static {
map = new java.util.HashMap<>();
for (IpMode v : IpMode.values()) {
map.put(v.getValue(), v);
}
}
IpMode(String value) {
this.value = value;
}
@com.fasterxml.jackson.annotation.JsonValue
public String getValue() {
return value;
}
@com.fasterxml.jackson.annotation.JsonCreator
public static IpMode create(String key) {
if (map.containsKey(key)) {
return map.get(key);
}
throw new IllegalArgumentException("Invalid IpMode: " + key);
}
};
/**
* Whether the load balancer has an IPv4 or IPv6 IP address.
*
* If "IPV4", the service assigns an IPv4 address and the load balancer supports IPv4
* traffic.
*
*
If "IPV6", the service assigns an IPv6 address and the load balancer supports IPv6
* traffic.
*
*
Example: "ipMode":"IPV6"
*/
@com.fasterxml.jackson.annotation.JsonProperty("ipMode")
private final IpMode ipMode;
/**
* Whether the load balancer has an IPv4 or IPv6 IP address.
*
*
If "IPV4", the service assigns an IPv4 address and the load balancer supports IPv4
* traffic.
*
*
If "IPV6", the service assigns an IPv6 address and the load balancer supports IPv6
* traffic.
*
*
Example: "ipMode":"IPV6"
*
* @return the value
*/
public IpMode getIpMode() {
return ipMode;
}
/** An array of reserved Ips. */
@com.fasterxml.jackson.annotation.JsonProperty("reservedIps")
private final java.util.List reservedIps;
/**
* An array of reserved Ips.
*
* @return the value
*/
public java.util.List getReservedIps() {
return reservedIps;
}
@com.fasterxml.jackson.annotation.JsonProperty("listeners")
private final java.util.Map listeners;
public java.util.Map getListeners() {
return listeners;
}
@com.fasterxml.jackson.annotation.JsonProperty("hostnames")
private final java.util.Map hostnames;
public java.util.Map getHostnames() {
return hostnames;
}
@com.fasterxml.jackson.annotation.JsonProperty("backendSets")
private final java.util.Map backendSets;
public java.util.Map getBackendSets() {
return backendSets;
}
/**
* An array of NSG
* [OCIDs](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) associated
* with this load balancer.
*
* During the load balancer's creation, the service adds the new load balancer to the
* specified NSGs.
*
*
The benefits of using NSGs with the load balancer include:
*
*
NSGs define network security rules to govern ingress and egress traffic for the load
* balancer.
*
*
The network security rules of other resources can reference the NSGs associated with the
* load balancer to ensure access.
*
*
Example: {@code ["ocid1.nsg.oc1.phx.unique_ID"]}
*/
@com.fasterxml.jackson.annotation.JsonProperty("networkSecurityGroupIds")
private final java.util.List networkSecurityGroupIds;
/**
* An array of NSG
* [OCIDs](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) associated
* with this load balancer.
*
* During the load balancer's creation, the service adds the new load balancer to the
* specified NSGs.
*
*
The benefits of using NSGs with the load balancer include:
*
*
NSGs define network security rules to govern ingress and egress traffic for the load
* balancer.
*
*
The network security rules of other resources can reference the NSGs associated with the
* load balancer to ensure access.
*
*
Example: {@code ["ocid1.nsg.oc1.phx.unique_ID"]}
*
* @return the value
*/
public java.util.List getNetworkSecurityGroupIds() {
return networkSecurityGroupIds;
}
/**
* An array of subnet
* [OCIDs](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
*/
@com.fasterxml.jackson.annotation.JsonProperty("subnetIds")
private final java.util.List subnetIds;
/**
* An array of subnet
* [OCIDs](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
*
* @return the value
*/
public java.util.List getSubnetIds() {
return subnetIds;
}
@com.fasterxml.jackson.annotation.JsonProperty("certificates")
private final java.util.Map certificates;
public java.util.Map getCertificates() {
return certificates;
}
@com.fasterxml.jackson.annotation.JsonProperty("sslCipherSuites")
private final java.util.Map sslCipherSuites;
public java.util.Map getSslCipherSuites() {
return sslCipherSuites;
}
@com.fasterxml.jackson.annotation.JsonProperty("pathRouteSets")
private final java.util.Map pathRouteSets;
public java.util.Map getPathRouteSets() {
return pathRouteSets;
}
/**
* Free-form tags for this resource. Each tag is a simple key-value pair with no predefined
* name, type, or namespace. For more information, see [Resource
* Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
*
* Example: {@code {"Department": "Finance"}}
*/
@com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
private final java.util.Map freeformTags;
/**
* Free-form tags for this resource. Each tag is a simple key-value pair with no predefined
* name, type, or namespace. For more information, see [Resource
* Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
*
* Example: {@code {"Department": "Finance"}}
*
* @return the value
*/
public java.util.Map getFreeformTags() {
return freeformTags;
}
/**
* Defined tags for this resource. Each key is predefined and scoped to a namespace. For more
* information, see [Resource
* Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
*
* Example: {@code {"Operations": {"CostCenter": "42"}}}
*/
@com.fasterxml.jackson.annotation.JsonProperty("definedTags")
private final java.util.Map> definedTags;
/**
* Defined tags for this resource. Each key is predefined and scoped to a namespace. For more
* information, see [Resource
* Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
*
* Example: {@code {"Operations": {"CostCenter": "42"}}}
*
* @return the value
*/
public java.util.Map> getDefinedTags() {
return definedTags;
}
@com.fasterxml.jackson.annotation.JsonProperty("ruleSets")
private final java.util.Map ruleSets;
public java.util.Map getRuleSets() {
return ruleSets;
}
@Override
public String toString() {
return this.toString(true);
}
/**
* Return a string representation of the object.
*
* @param includeByteArrayContents true to include the full contents of byte arrays
* @return string representation
*/
public String toString(boolean includeByteArrayContents) {
java.lang.StringBuilder sb = new java.lang.StringBuilder();
sb.append("CreateLoadBalancerDetails(");
sb.append("super=").append(super.toString());
sb.append("compartmentId=").append(String.valueOf(this.compartmentId));
sb.append(", displayName=").append(String.valueOf(this.displayName));
sb.append(", shapeName=").append(String.valueOf(this.shapeName));
sb.append(", shapeDetails=").append(String.valueOf(this.shapeDetails));
sb.append(", isPrivate=").append(String.valueOf(this.isPrivate));
sb.append(", isDeleteProtectionEnabled=")
.append(String.valueOf(this.isDeleteProtectionEnabled));
sb.append(", ipMode=").append(String.valueOf(this.ipMode));
sb.append(", reservedIps=").append(String.valueOf(this.reservedIps));
sb.append(", listeners=").append(String.valueOf(this.listeners));
sb.append(", hostnames=").append(String.valueOf(this.hostnames));
sb.append(", backendSets=").append(String.valueOf(this.backendSets));
sb.append(", networkSecurityGroupIds=")
.append(String.valueOf(this.networkSecurityGroupIds));
sb.append(", subnetIds=").append(String.valueOf(this.subnetIds));
sb.append(", certificates=").append(String.valueOf(this.certificates));
sb.append(", sslCipherSuites=").append(String.valueOf(this.sslCipherSuites));
sb.append(", pathRouteSets=").append(String.valueOf(this.pathRouteSets));
sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
sb.append(", definedTags=").append(String.valueOf(this.definedTags));
sb.append(", ruleSets=").append(String.valueOf(this.ruleSets));
sb.append(")");
return sb.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof CreateLoadBalancerDetails)) {
return false;
}
CreateLoadBalancerDetails other = (CreateLoadBalancerDetails) o;
return java.util.Objects.equals(this.compartmentId, other.compartmentId)
&& java.util.Objects.equals(this.displayName, other.displayName)
&& java.util.Objects.equals(this.shapeName, other.shapeName)
&& java.util.Objects.equals(this.shapeDetails, other.shapeDetails)
&& java.util.Objects.equals(this.isPrivate, other.isPrivate)
&& java.util.Objects.equals(
this.isDeleteProtectionEnabled, other.isDeleteProtectionEnabled)
&& java.util.Objects.equals(this.ipMode, other.ipMode)
&& java.util.Objects.equals(this.reservedIps, other.reservedIps)
&& java.util.Objects.equals(this.listeners, other.listeners)
&& java.util.Objects.equals(this.hostnames, other.hostnames)
&& java.util.Objects.equals(this.backendSets, other.backendSets)
&& java.util.Objects.equals(
this.networkSecurityGroupIds, other.networkSecurityGroupIds)
&& java.util.Objects.equals(this.subnetIds, other.subnetIds)
&& java.util.Objects.equals(this.certificates, other.certificates)
&& java.util.Objects.equals(this.sslCipherSuites, other.sslCipherSuites)
&& java.util.Objects.equals(this.pathRouteSets, other.pathRouteSets)
&& java.util.Objects.equals(this.freeformTags, other.freeformTags)
&& java.util.Objects.equals(this.definedTags, other.definedTags)
&& java.util.Objects.equals(this.ruleSets, other.ruleSets)
&& super.equals(other);
}
@Override
public int hashCode() {
final int PRIME = 59;
int result = 1;
result =
(result * PRIME)
+ (this.compartmentId == null ? 43 : this.compartmentId.hashCode());
result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
result = (result * PRIME) + (this.shapeName == null ? 43 : this.shapeName.hashCode());
result = (result * PRIME) + (this.shapeDetails == null ? 43 : this.shapeDetails.hashCode());
result = (result * PRIME) + (this.isPrivate == null ? 43 : this.isPrivate.hashCode());
result =
(result * PRIME)
+ (this.isDeleteProtectionEnabled == null
? 43
: this.isDeleteProtectionEnabled.hashCode());
result = (result * PRIME) + (this.ipMode == null ? 43 : this.ipMode.hashCode());
result = (result * PRIME) + (this.reservedIps == null ? 43 : this.reservedIps.hashCode());
result = (result * PRIME) + (this.listeners == null ? 43 : this.listeners.hashCode());
result = (result * PRIME) + (this.hostnames == null ? 43 : this.hostnames.hashCode());
result = (result * PRIME) + (this.backendSets == null ? 43 : this.backendSets.hashCode());
result =
(result * PRIME)
+ (this.networkSecurityGroupIds == null
? 43
: this.networkSecurityGroupIds.hashCode());
result = (result * PRIME) + (this.subnetIds == null ? 43 : this.subnetIds.hashCode());
result = (result * PRIME) + (this.certificates == null ? 43 : this.certificates.hashCode());
result =
(result * PRIME)
+ (this.sslCipherSuites == null ? 43 : this.sslCipherSuites.hashCode());
result =
(result * PRIME)
+ (this.pathRouteSets == null ? 43 : this.pathRouteSets.hashCode());
result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
result = (result * PRIME) + (this.ruleSets == null ? 43 : this.ruleSets.hashCode());
result = (result * PRIME) + super.hashCode();
return result;
}
}