
com.oracle.bmc.mysql.model.UpdateDbSystemDetails Maven / Gradle / Ivy
/**
* Copyright (c) 2016, 2021, 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.mysql.model;
/**
* Details required to update a DB System.
*
*
* 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 #__explicitlySet__}. The {@link #hashCode()} and {@link #equals(Object)} methods are implemented to take
* {@link #__explicitlySet__} into account. The constructor, on the other hand, does not set {@link #__explicitlySet__}
* (since the constructor cannot distinguish explicit {@code null} from unset {@code null}).
**/
@javax.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20190415")
@lombok.AllArgsConstructor(onConstructor = @__({@Deprecated}))
@lombok.Value
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
builder = UpdateDbSystemDetails.Builder.class
)
@com.fasterxml.jackson.annotation.JsonFilter(com.oracle.bmc.http.internal.ExplicitlySetFilter.NAME)
@lombok.Builder(builderClassName = "Builder", toBuilder = true)
public class UpdateDbSystemDetails {
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
@lombok.experimental.Accessors(fluent = true)
public static class Builder {
@com.fasterxml.jackson.annotation.JsonProperty("displayName")
private String displayName;
public Builder displayName(String displayName) {
this.displayName = displayName;
this.__explicitlySet__.add("displayName");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("description")
private String description;
public Builder description(String description) {
this.description = description;
this.__explicitlySet__.add("description");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("subnetId")
private String subnetId;
public Builder subnetId(String subnetId) {
this.subnetId = subnetId;
this.__explicitlySet__.add("subnetId");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("availabilityDomain")
private String availabilityDomain;
public Builder availabilityDomain(String availabilityDomain) {
this.availabilityDomain = availabilityDomain;
this.__explicitlySet__.add("availabilityDomain");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("faultDomain")
private String faultDomain;
public Builder faultDomain(String faultDomain) {
this.faultDomain = faultDomain;
this.__explicitlySet__.add("faultDomain");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("shapeName")
private String shapeName;
public Builder shapeName(String shapeName) {
this.shapeName = shapeName;
this.__explicitlySet__.add("shapeName");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("mysqlVersion")
private String mysqlVersion;
public Builder mysqlVersion(String mysqlVersion) {
this.mysqlVersion = mysqlVersion;
this.__explicitlySet__.add("mysqlVersion");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("configurationId")
private String configurationId;
public Builder configurationId(String configurationId) {
this.configurationId = configurationId;
this.__explicitlySet__.add("configurationId");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("adminUsername")
private String adminUsername;
public Builder adminUsername(String adminUsername) {
this.adminUsername = adminUsername;
this.__explicitlySet__.add("adminUsername");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("adminPassword")
private String adminPassword;
public Builder adminPassword(String adminPassword) {
this.adminPassword = adminPassword;
this.__explicitlySet__.add("adminPassword");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("dataStorageSizeInGBs")
private Integer dataStorageSizeInGBs;
public Builder dataStorageSizeInGBs(Integer dataStorageSizeInGBs) {
this.dataStorageSizeInGBs = dataStorageSizeInGBs;
this.__explicitlySet__.add("dataStorageSizeInGBs");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("hostnameLabel")
private String hostnameLabel;
public Builder hostnameLabel(String hostnameLabel) {
this.hostnameLabel = hostnameLabel;
this.__explicitlySet__.add("hostnameLabel");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("ipAddress")
private String ipAddress;
public Builder ipAddress(String ipAddress) {
this.ipAddress = ipAddress;
this.__explicitlySet__.add("ipAddress");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("port")
private Integer port;
public Builder port(Integer port) {
this.port = port;
this.__explicitlySet__.add("port");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("portX")
private Integer portX;
public Builder portX(Integer portX) {
this.portX = portX;
this.__explicitlySet__.add("portX");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("backupPolicy")
private UpdateBackupPolicyDetails backupPolicy;
public Builder backupPolicy(UpdateBackupPolicyDetails backupPolicy) {
this.backupPolicy = backupPolicy;
this.__explicitlySet__.add("backupPolicy");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("maintenance")
private UpdateMaintenanceDetails maintenance;
public Builder maintenance(UpdateMaintenanceDetails maintenance) {
this.maintenance = maintenance;
this.__explicitlySet__.add("maintenance");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
private java.util.Map freeformTags;
public Builder freeformTags(java.util.Map freeformTags) {
this.freeformTags = freeformTags;
this.__explicitlySet__.add("freeformTags");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("definedTags")
private java.util.Map> definedTags;
public Builder definedTags(
java.util.Map> definedTags) {
this.definedTags = definedTags;
this.__explicitlySet__.add("definedTags");
return this;
}
@com.fasterxml.jackson.annotation.JsonIgnore
private final java.util.Set __explicitlySet__ = new java.util.HashSet();
public UpdateDbSystemDetails build() {
UpdateDbSystemDetails __instance__ =
new UpdateDbSystemDetails(
displayName,
description,
subnetId,
availabilityDomain,
faultDomain,
shapeName,
mysqlVersion,
configurationId,
adminUsername,
adminPassword,
dataStorageSizeInGBs,
hostnameLabel,
ipAddress,
port,
portX,
backupPolicy,
maintenance,
freeformTags,
definedTags);
__instance__.__explicitlySet__.addAll(__explicitlySet__);
return __instance__;
}
@com.fasterxml.jackson.annotation.JsonIgnore
public Builder copy(UpdateDbSystemDetails o) {
Builder copiedBuilder =
displayName(o.getDisplayName())
.description(o.getDescription())
.subnetId(o.getSubnetId())
.availabilityDomain(o.getAvailabilityDomain())
.faultDomain(o.getFaultDomain())
.shapeName(o.getShapeName())
.mysqlVersion(o.getMysqlVersion())
.configurationId(o.getConfigurationId())
.adminUsername(o.getAdminUsername())
.adminPassword(o.getAdminPassword())
.dataStorageSizeInGBs(o.getDataStorageSizeInGBs())
.hostnameLabel(o.getHostnameLabel())
.ipAddress(o.getIpAddress())
.port(o.getPort())
.portX(o.getPortX())
.backupPolicy(o.getBackupPolicy())
.maintenance(o.getMaintenance())
.freeformTags(o.getFreeformTags())
.definedTags(o.getDefinedTags());
copiedBuilder.__explicitlySet__.retainAll(o.__explicitlySet__);
return copiedBuilder;
}
}
/**
* Create a new builder.
*/
public static Builder builder() {
return new Builder();
}
/**
* The user-friendly name for the DB System. It does not have to be unique.
**/
@com.fasterxml.jackson.annotation.JsonProperty("displayName")
String displayName;
/**
* User-provided data about the DB System.
**/
@com.fasterxml.jackson.annotation.JsonProperty("description")
String description;
/**
* The OCID of the subnet the DB System is associated with.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("subnetId")
String subnetId;
/**
* The Availability Domain where the primary instance should be located.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("availabilityDomain")
String availabilityDomain;
/**
* The name of the Fault Domain the DB System is located in.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("faultDomain")
String faultDomain;
/**
* The shape of the DB System. The shape determines resources
* allocated to the DB System - CPU cores and memory for VM
* shapes; CPU cores, memory and storage for non-VM (or bare metal)
* shapes. To get a list of shapes, use the
* {@link #listShapes(ListShapesRequest) listShapes}
* operation.
*
* Changes in Shape will result in a downtime as the MySQL DB System is
* migrated to the new Compute instance.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("shapeName")
String shapeName;
/**
* The specific MySQL version identifier.
**/
@com.fasterxml.jackson.annotation.JsonProperty("mysqlVersion")
String mysqlVersion;
/**
* The OCID of the Configuration to be used for Instances in this DB System.
**/
@com.fasterxml.jackson.annotation.JsonProperty("configurationId")
String configurationId;
/**
* The username for the administrative user for the MySQL Instance.
**/
@com.fasterxml.jackson.annotation.JsonProperty("adminUsername")
String adminUsername;
/**
* The password for the administrative user. The password must be
* between 8 and 32 characters long, and must contain at least 1
* numeric character, 1 lowercase character, 1 uppercase character, and
* 1 special (nonalphanumeric) character.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("adminPassword")
String adminPassword;
/**
* New size of the data volume in GBs that will be created and attached.
*
* Increases in data storage size will happen asynchronously and will require DB System downtime.
*
* Decreases in data storage size are not supported.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("dataStorageSizeInGBs")
Integer dataStorageSizeInGBs;
/**
* The hostname for the primary endpoint of the DB System. Used for DNS.
* The value is the hostname portion of the primary private IP's fully qualified domain name (FQDN)
* (for example, \"dbsystem-1\" in FQDN \"dbsystem-1.subnet123.vcn1.oraclevcn.com\").
* Must be unique across all VNICs in the subnet and comply with RFC 952 and RFC 1123.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("hostnameLabel")
String hostnameLabel;
/**
* The IP address the DB System should be configured to listen on the provided subnet.
* It must be a free private IP address within the subnet's CIDR. If you don't specify a
* value, Oracle automatically assigns a private IP address from the subnet. This should
* be a \"dotted-quad\" style IPv4 address.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("ipAddress")
String ipAddress;
/**
* The port for primary endpoint of the DB System to listen on.
**/
@com.fasterxml.jackson.annotation.JsonProperty("port")
Integer port;
/**
* The TCP network port on which X Plugin listens for connections. This is the X Plugin equivalent of port.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("portX")
Integer portX;
@com.fasterxml.jackson.annotation.JsonProperty("backupPolicy")
UpdateBackupPolicyDetails backupPolicy;
@com.fasterxml.jackson.annotation.JsonProperty("maintenance")
UpdateMaintenanceDetails maintenance;
/**
* Simple key-value pair applied without any predefined name, type or scope. Exists for cross-compatibility only.
* Example: `{\"bar-key\": \"value\"}`
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("freeformTags")
java.util.Map freeformTags;
/**
* Usage of predefined tag keys. These predefined keys are scoped to namespaces.
* Example: `{\"foo-namespace\": {\"bar-key\": \"value\"}}`
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("definedTags")
java.util.Map> definedTags;
@com.fasterxml.jackson.annotation.JsonIgnore
private final java.util.Set __explicitlySet__ = new java.util.HashSet();
}