All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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: 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("isHighlyAvailable") private Boolean isHighlyAvailable; public Builder isHighlyAvailable(Boolean isHighlyAvailable) { this.isHighlyAvailable = isHighlyAvailable; this.__explicitlySet__.add("isHighlyAvailable"); return this; } @com.fasterxml.jackson.annotation.JsonProperty("currentPlacement") private DbSystemPlacement currentPlacement; public Builder currentPlacement(DbSystemPlacement currentPlacement) { this.currentPlacement = currentPlacement; this.__explicitlySet__.add("currentPlacement"); 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("isHeatWaveClusterAttached") private Boolean isHeatWaveClusterAttached; public Builder isHeatWaveClusterAttached(Boolean isHeatWaveClusterAttached) { this.isHeatWaveClusterAttached = isHeatWaveClusterAttached; this.__explicitlySet__.add("isHeatWaveClusterAttached"); return this; } @com.fasterxml.jackson.annotation.JsonProperty("heatWaveCluster") private HeatWaveClusterSummary heatWaveCluster; public Builder heatWaveCluster(HeatWaveClusterSummary heatWaveCluster) { this.heatWaveCluster = heatWaveCluster; this.__explicitlySet__.add("heatWaveCluster"); 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, isHighlyAvailable, currentPlacement, isAnalyticsClusterAttached, analyticsCluster, isHeatWaveClusterAttached, heatWaveCluster, 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()) .isHighlyAvailable(o.getIsHighlyAvailable()) .currentPlacement(o.getCurrentPlacement()) .isAnalyticsClusterAttached(o.getIsAnalyticsClusterAttached()) .analyticsCluster(o.getAnalyticsCluster()) .isHeatWaveClusterAttached(o.getIsHeatWaveClusterAttached()) .heatWaveCluster(o.getHeatWaveCluster()) .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 policy is to enable high availability of the instance, by * maintaining secondary/failover capacity as necessary. * **/ @com.fasterxml.jackson.annotation.JsonProperty("isHighlyAvailable") Boolean isHighlyAvailable; @com.fasterxml.jackson.annotation.JsonProperty("currentPlacement") DbSystemPlacement currentPlacement; /** * DEPRECATED -- please use `isHeatWaveClusterAttached` instead. * 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; /** * If the DB System has a HeatWave Cluster attached. * **/ @com.fasterxml.jackson.annotation.JsonProperty("isHeatWaveClusterAttached") Boolean isHeatWaveClusterAttached; @com.fasterxml.jackson.annotation.JsonProperty("heatWaveCluster") HeatWaveClusterSummary heatWaveCluster; /** * The availability domain on which to deploy the Read/Write endpoint. This defines the preferred primary instance. *

* In a failover scenario, the Read/Write endpoint is redirected to one of the other availability domains * and the MySQL instance in that domain is promoted to the primary instance. * This redirection does not affect the IP address of the DB System in any way. *

* For a standalone DB System, this defines the availability domain in which the DB System is placed. * **/ @com.fasterxml.jackson.annotation.JsonProperty("availabilityDomain") String availabilityDomain; /** * The fault domain on which to deploy the Read/Write endpoint. This defines the preferred primary instance. *

* In a failover scenario, the Read/Write endpoint is redirected to one of the other fault domains * and the MySQL instance in that domain is promoted to the primary instance. * This redirection does not affect the IP address of the DB System in any way. *

* For a standalone DB System, this defines the fault domain in which the DB System is placed. * **/ @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