
com.oracle.bmc.mysql.model.DbSystem 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;
/**
* A DB System is the core logical unit of MySQL Database Service.
* # NOTE: definitions/DbSystemSnapshot is a snapshot version of DbSystem which is stored during backup. Any
* # addition/deletion of properties should also consider snapshot's definition
*
*
* 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 = DbSystem.Builder.class)
@com.fasterxml.jackson.annotation.JsonFilter(com.oracle.bmc.http.internal.ExplicitlySetFilter.NAME)
@lombok.Builder(builderClassName = "Builder", toBuilder = true)
public class DbSystem {
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
@lombok.experimental.Accessors(fluent = true)
public static class Builder {
@com.fasterxml.jackson.annotation.JsonProperty("id")
private String id;
public Builder id(String id) {
this.id = id;
this.__explicitlySet__.add("id");
return this;
}
@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("compartmentId")
private String compartmentId;
public Builder compartmentId(String compartmentId) {
this.compartmentId = compartmentId;
this.__explicitlySet__.add("compartmentId");
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("isAnalyticsClusterAttached")
private Boolean isAnalyticsClusterAttached;
public Builder isAnalyticsClusterAttached(Boolean isAnalyticsClusterAttached) {
this.isAnalyticsClusterAttached = isAnalyticsClusterAttached;
this.__explicitlySet__.add("isAnalyticsClusterAttached");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("analyticsCluster")
private AnalyticsClusterSummary analyticsCluster;
public Builder analyticsCluster(AnalyticsClusterSummary analyticsCluster) {
this.analyticsCluster = analyticsCluster;
this.__explicitlySet__.add("analyticsCluster");
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("backupPolicy")
private BackupPolicy backupPolicy;
public Builder backupPolicy(BackupPolicy backupPolicy) {
this.backupPolicy = backupPolicy;
this.__explicitlySet__.add("backupPolicy");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("source")
private DbSystemSource source;
public Builder source(DbSystemSource source) {
this.source = source;
this.__explicitlySet__.add("source");
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("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("endpoints")
private java.util.List endpoints;
public Builder endpoints(java.util.List endpoints) {
this.endpoints = endpoints;
this.__explicitlySet__.add("endpoints");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("channels")
private java.util.List channels;
public Builder channels(java.util.List channels) {
this.channels = channels;
this.__explicitlySet__.add("channels");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
private LifecycleState lifecycleState;
public Builder lifecycleState(LifecycleState lifecycleState) {
this.lifecycleState = lifecycleState;
this.__explicitlySet__.add("lifecycleState");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
private String lifecycleDetails;
public Builder lifecycleDetails(String lifecycleDetails) {
this.lifecycleDetails = lifecycleDetails;
this.__explicitlySet__.add("lifecycleDetails");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("maintenance")
private MaintenanceDetails maintenance;
public Builder maintenance(MaintenanceDetails maintenance) {
this.maintenance = maintenance;
this.__explicitlySet__.add("maintenance");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
private java.util.Date timeCreated;
public Builder timeCreated(java.util.Date timeCreated) {
this.timeCreated = timeCreated;
this.__explicitlySet__.add("timeCreated");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
private java.util.Date timeUpdated;
public Builder timeUpdated(java.util.Date timeUpdated) {
this.timeUpdated = timeUpdated;
this.__explicitlySet__.add("timeUpdated");
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 DbSystem build() {
DbSystem __instance__ =
new DbSystem(
id,
displayName,
description,
compartmentId,
subnetId,
isAnalyticsClusterAttached,
analyticsCluster,
availabilityDomain,
faultDomain,
shapeName,
mysqlVersion,
backupPolicy,
source,
configurationId,
dataStorageSizeInGBs,
hostnameLabel,
ipAddress,
port,
portX,
endpoints,
channels,
lifecycleState,
lifecycleDetails,
maintenance,
timeCreated,
timeUpdated,
freeformTags,
definedTags);
__instance__.__explicitlySet__.addAll(__explicitlySet__);
return __instance__;
}
@com.fasterxml.jackson.annotation.JsonIgnore
public Builder copy(DbSystem o) {
Builder copiedBuilder =
id(o.getId())
.displayName(o.getDisplayName())
.description(o.getDescription())
.compartmentId(o.getCompartmentId())
.subnetId(o.getSubnetId())
.isAnalyticsClusterAttached(o.getIsAnalyticsClusterAttached())
.analyticsCluster(o.getAnalyticsCluster())
.availabilityDomain(o.getAvailabilityDomain())
.faultDomain(o.getFaultDomain())
.shapeName(o.getShapeName())
.mysqlVersion(o.getMysqlVersion())
.backupPolicy(o.getBackupPolicy())
.source(o.getSource())
.configurationId(o.getConfigurationId())
.dataStorageSizeInGBs(o.getDataStorageSizeInGBs())
.hostnameLabel(o.getHostnameLabel())
.ipAddress(o.getIpAddress())
.port(o.getPort())
.portX(o.getPortX())
.endpoints(o.getEndpoints())
.channels(o.getChannels())
.lifecycleState(o.getLifecycleState())
.lifecycleDetails(o.getLifecycleDetails())
.maintenance(o.getMaintenance())
.timeCreated(o.getTimeCreated())
.timeUpdated(o.getTimeUpdated())
.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 OCID of the DB System.
**/
@com.fasterxml.jackson.annotation.JsonProperty("id")
String id;
/**
* 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 compartment the DB System belongs in.
**/
@com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
String compartmentId;
/**
* The OCID of the subnet the DB System is associated with.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("subnetId")
String subnetId;
/**
* If the DB System has an Analytics Cluster attached.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("isAnalyticsClusterAttached")
Boolean isAnalyticsClusterAttached;
@com.fasterxml.jackson.annotation.JsonProperty("analyticsCluster")
AnalyticsClusterSummary analyticsCluster;
/**
* The Availability Domain where the primary DB System 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 primary instances of the DB System. The shape
* determines resources allocated to a 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.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("shapeName")
String shapeName;
/**
* Name of the MySQL Version in use for the DB System.
**/
@com.fasterxml.jackson.annotation.JsonProperty("mysqlVersion")
String mysqlVersion;
@com.fasterxml.jackson.annotation.JsonProperty("backupPolicy")
BackupPolicy backupPolicy;
@com.fasterxml.jackson.annotation.JsonProperty("source")
DbSystemSource source;
/**
* The OCID of the Configuration to be used for Instances in this DB System.
**/
@com.fasterxml.jackson.annotation.JsonProperty("configurationId")
String configurationId;
/**
* Initial size of the data volume in GiBs that will be created and attached.
*
**/
@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 is configured to listen on. A private
* IP address of the primary endpoint of the DB System. Must be an
* available IP address within the subnet's CIDR. This will 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 network port on which X Plugin listens for TCP/IP connections. This is the X Plugin equivalent of port.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("portX")
Integer portX;
/**
* The network endpoints available for this DB System.
*
**/
@com.fasterxml.jackson.annotation.JsonProperty("endpoints")
java.util.List endpoints;
/**
* A list with a summary of all the Channels attached to the DB System.
**/
@com.fasterxml.jackson.annotation.JsonProperty("channels")
java.util.List channels;
/**
* The current state of the DB System.
**/
@lombok.extern.slf4j.Slf4j
public enum LifecycleState {
Creating("CREATING"),
Active("ACTIVE"),
Inactive("INACTIVE"),
Updating("UPDATING"),
Deleting("DELETING"),
Deleted("DELETED"),
Failed("FAILED"),
/**
* This value is used if a service returns a value for this enum that is not recognized by this
* version of the SDK.
*/
UnknownEnumValue(null);
private final String value;
private static java.util.Map map;
static {
map = new java.util.HashMap<>();
for (LifecycleState v : LifecycleState.values()) {
if (v != UnknownEnumValue) {
map.put(v.getValue(), v);
}
}
}
LifecycleState(String value) {
this.value = value;
}
@com.fasterxml.jackson.annotation.JsonValue
public String getValue() {
return value;
}
@com.fasterxml.jackson.annotation.JsonCreator
public static LifecycleState create(String key) {
if (map.containsKey(key)) {
return map.get(key);
}
LOG.warn(
"Received unknown value '{}' for enum 'LifecycleState', returning UnknownEnumValue",
key);
return UnknownEnumValue;
}
};
/**
* The current state of the DB System.
**/
@com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
LifecycleState lifecycleState;
/**
* Additional information about the current lifecycleState.
**/
@com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
String lifecycleDetails;
@com.fasterxml.jackson.annotation.JsonProperty("maintenance")
MaintenanceDetails maintenance;
/**
* The date and time the DB System was created.
**/
@com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
java.util.Date timeCreated;
/**
* The time the DB System was last updated.
**/
@com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
java.util.Date timeUpdated;
/**
* Simple key-value pair that is 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;
/**
* Defined tags for this resource. Each key is predefined and scoped to a namespace.
* 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();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy