com.oracle.bmc.database.model.UpdateAutonomousContainerDatabaseDetails Maven / Gradle / Ivy
/**
* 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.database.model;
/**
* Describes the modification parameters for the Autonomous Container Database.
* 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: 20160918")
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
builder = UpdateAutonomousContainerDatabaseDetails.Builder.class)
@com.fasterxml.jackson.annotation.JsonFilter(
com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
public final class UpdateAutonomousContainerDatabaseDetails
extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
@Deprecated
@java.beans.ConstructorProperties({
"displayName",
"patchModel",
"maintenanceWindowDetails",
"standbyMaintenanceBufferInDays",
"versionPreference",
"isDstFileUpdateEnabled",
"freeformTags",
"definedTags",
"backupConfig"
})
public UpdateAutonomousContainerDatabaseDetails(
String displayName,
PatchModel patchModel,
MaintenanceWindow maintenanceWindowDetails,
Integer standbyMaintenanceBufferInDays,
VersionPreference versionPreference,
Boolean isDstFileUpdateEnabled,
java.util.Map freeformTags,
java.util.Map> definedTags,
AutonomousContainerDatabaseBackupConfig backupConfig) {
super();
this.displayName = displayName;
this.patchModel = patchModel;
this.maintenanceWindowDetails = maintenanceWindowDetails;
this.standbyMaintenanceBufferInDays = standbyMaintenanceBufferInDays;
this.versionPreference = versionPreference;
this.isDstFileUpdateEnabled = isDstFileUpdateEnabled;
this.freeformTags = freeformTags;
this.definedTags = definedTags;
this.backupConfig = backupConfig;
}
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
public static class Builder {
/** The display name for the Autonomous Container Database. */
@com.fasterxml.jackson.annotation.JsonProperty("displayName")
private String displayName;
/**
* The display name for the Autonomous Container Database.
*
* @param displayName the value to set
* @return this builder
*/
public Builder displayName(String displayName) {
this.displayName = displayName;
this.__explicitlySet__.add("displayName");
return this;
}
/** Database Patch model preference. */
@com.fasterxml.jackson.annotation.JsonProperty("patchModel")
private PatchModel patchModel;
/**
* Database Patch model preference.
*
* @param patchModel the value to set
* @return this builder
*/
public Builder patchModel(PatchModel patchModel) {
this.patchModel = patchModel;
this.__explicitlySet__.add("patchModel");
return this;
}
@com.fasterxml.jackson.annotation.JsonProperty("maintenanceWindowDetails")
private MaintenanceWindow maintenanceWindowDetails;
public Builder maintenanceWindowDetails(MaintenanceWindow maintenanceWindowDetails) {
this.maintenanceWindowDetails = maintenanceWindowDetails;
this.__explicitlySet__.add("maintenanceWindowDetails");
return this;
}
/**
* The scheduling detail for the quarterly maintenance window of the standby Autonomous
* Container Database. This value represents the number of days before schedlued maintenance
* of the primary database.
*/
@com.fasterxml.jackson.annotation.JsonProperty("standbyMaintenanceBufferInDays")
private Integer standbyMaintenanceBufferInDays;
/**
* The scheduling detail for the quarterly maintenance window of the standby Autonomous
* Container Database. This value represents the number of days before schedlued maintenance
* of the primary database.
*
* @param standbyMaintenanceBufferInDays the value to set
* @return this builder
*/
public Builder standbyMaintenanceBufferInDays(Integer standbyMaintenanceBufferInDays) {
this.standbyMaintenanceBufferInDays = standbyMaintenanceBufferInDays;
this.__explicitlySet__.add("standbyMaintenanceBufferInDays");
return this;
}
/** The next maintenance version preference. */
@com.fasterxml.jackson.annotation.JsonProperty("versionPreference")
private VersionPreference versionPreference;
/**
* The next maintenance version preference.
*
* @param versionPreference the value to set
* @return this builder
*/
public Builder versionPreference(VersionPreference versionPreference) {
this.versionPreference = versionPreference;
this.__explicitlySet__.add("versionPreference");
return this;
}
/**
* Indicates if an automatic DST Time Zone file update is enabled for the Autonomous
* Container Database. If enabled along with Release Update, patching will be done in a
* Non-Rolling manner.
*/
@com.fasterxml.jackson.annotation.JsonProperty("isDstFileUpdateEnabled")
private Boolean isDstFileUpdateEnabled;
/**
* Indicates if an automatic DST Time Zone file update is enabled for the Autonomous
* Container Database. If enabled along with Release Update, patching will be done in a
* Non-Rolling manner.
*
* @param isDstFileUpdateEnabled the value to set
* @return this builder
*/
public Builder isDstFileUpdateEnabled(Boolean isDstFileUpdateEnabled) {
this.isDstFileUpdateEnabled = isDstFileUpdateEnabled;
this.__explicitlySet__.add("isDstFileUpdateEnabled");
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).
*/
@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).
*
* @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("backupConfig")
private AutonomousContainerDatabaseBackupConfig backupConfig;
public Builder backupConfig(AutonomousContainerDatabaseBackupConfig backupConfig) {
this.backupConfig = backupConfig;
this.__explicitlySet__.add("backupConfig");
return this;
}
@com.fasterxml.jackson.annotation.JsonIgnore
private final java.util.Set __explicitlySet__ = new java.util.HashSet();
public UpdateAutonomousContainerDatabaseDetails build() {
UpdateAutonomousContainerDatabaseDetails model =
new UpdateAutonomousContainerDatabaseDetails(
this.displayName,
this.patchModel,
this.maintenanceWindowDetails,
this.standbyMaintenanceBufferInDays,
this.versionPreference,
this.isDstFileUpdateEnabled,
this.freeformTags,
this.definedTags,
this.backupConfig);
for (String explicitlySetProperty : this.__explicitlySet__) {
model.markPropertyAsExplicitlySet(explicitlySetProperty);
}
return model;
}
@com.fasterxml.jackson.annotation.JsonIgnore
public Builder copy(UpdateAutonomousContainerDatabaseDetails model) {
if (model.wasPropertyExplicitlySet("displayName")) {
this.displayName(model.getDisplayName());
}
if (model.wasPropertyExplicitlySet("patchModel")) {
this.patchModel(model.getPatchModel());
}
if (model.wasPropertyExplicitlySet("maintenanceWindowDetails")) {
this.maintenanceWindowDetails(model.getMaintenanceWindowDetails());
}
if (model.wasPropertyExplicitlySet("standbyMaintenanceBufferInDays")) {
this.standbyMaintenanceBufferInDays(model.getStandbyMaintenanceBufferInDays());
}
if (model.wasPropertyExplicitlySet("versionPreference")) {
this.versionPreference(model.getVersionPreference());
}
if (model.wasPropertyExplicitlySet("isDstFileUpdateEnabled")) {
this.isDstFileUpdateEnabled(model.getIsDstFileUpdateEnabled());
}
if (model.wasPropertyExplicitlySet("freeformTags")) {
this.freeformTags(model.getFreeformTags());
}
if (model.wasPropertyExplicitlySet("definedTags")) {
this.definedTags(model.getDefinedTags());
}
if (model.wasPropertyExplicitlySet("backupConfig")) {
this.backupConfig(model.getBackupConfig());
}
return this;
}
}
/** Create a new builder. */
public static Builder builder() {
return new Builder();
}
public Builder toBuilder() {
return new Builder().copy(this);
}
/** The display name for the Autonomous Container Database. */
@com.fasterxml.jackson.annotation.JsonProperty("displayName")
private final String displayName;
/**
* The display name for the Autonomous Container Database.
*
* @return the value
*/
public String getDisplayName() {
return displayName;
}
/** Database Patch model preference. */
public enum PatchModel implements com.oracle.bmc.http.internal.BmcEnum {
ReleaseUpdates("RELEASE_UPDATES"),
ReleaseUpdateRevisions("RELEASE_UPDATE_REVISIONS"),
;
private final String value;
private static java.util.Map map;
static {
map = new java.util.HashMap<>();
for (PatchModel v : PatchModel.values()) {
map.put(v.getValue(), v);
}
}
PatchModel(String value) {
this.value = value;
}
@com.fasterxml.jackson.annotation.JsonValue
public String getValue() {
return value;
}
@com.fasterxml.jackson.annotation.JsonCreator
public static PatchModel create(String key) {
if (map.containsKey(key)) {
return map.get(key);
}
throw new IllegalArgumentException("Invalid PatchModel: " + key);
}
};
/** Database Patch model preference. */
@com.fasterxml.jackson.annotation.JsonProperty("patchModel")
private final PatchModel patchModel;
/**
* Database Patch model preference.
*
* @return the value
*/
public PatchModel getPatchModel() {
return patchModel;
}
@com.fasterxml.jackson.annotation.JsonProperty("maintenanceWindowDetails")
private final MaintenanceWindow maintenanceWindowDetails;
public MaintenanceWindow getMaintenanceWindowDetails() {
return maintenanceWindowDetails;
}
/**
* The scheduling detail for the quarterly maintenance window of the standby Autonomous
* Container Database. This value represents the number of days before schedlued maintenance of
* the primary database.
*/
@com.fasterxml.jackson.annotation.JsonProperty("standbyMaintenanceBufferInDays")
private final Integer standbyMaintenanceBufferInDays;
/**
* The scheduling detail for the quarterly maintenance window of the standby Autonomous
* Container Database. This value represents the number of days before schedlued maintenance of
* the primary database.
*
* @return the value
*/
public Integer getStandbyMaintenanceBufferInDays() {
return standbyMaintenanceBufferInDays;
}
/** The next maintenance version preference. */
public enum VersionPreference implements com.oracle.bmc.http.internal.BmcEnum {
NextReleaseUpdate("NEXT_RELEASE_UPDATE"),
LatestReleaseUpdate("LATEST_RELEASE_UPDATE"),
;
private final String value;
private static java.util.Map map;
static {
map = new java.util.HashMap<>();
for (VersionPreference v : VersionPreference.values()) {
map.put(v.getValue(), v);
}
}
VersionPreference(String value) {
this.value = value;
}
@com.fasterxml.jackson.annotation.JsonValue
public String getValue() {
return value;
}
@com.fasterxml.jackson.annotation.JsonCreator
public static VersionPreference create(String key) {
if (map.containsKey(key)) {
return map.get(key);
}
throw new IllegalArgumentException("Invalid VersionPreference: " + key);
}
};
/** The next maintenance version preference. */
@com.fasterxml.jackson.annotation.JsonProperty("versionPreference")
private final VersionPreference versionPreference;
/**
* The next maintenance version preference.
*
* @return the value
*/
public VersionPreference getVersionPreference() {
return versionPreference;
}
/**
* Indicates if an automatic DST Time Zone file update is enabled for the Autonomous Container
* Database. If enabled along with Release Update, patching will be done in a Non-Rolling
* manner.
*/
@com.fasterxml.jackson.annotation.JsonProperty("isDstFileUpdateEnabled")
private final Boolean isDstFileUpdateEnabled;
/**
* Indicates if an automatic DST Time Zone file update is enabled for the Autonomous Container
* Database. If enabled along with Release Update, patching will be done in a Non-Rolling
* manner.
*
* @return the value
*/
public Boolean getIsDstFileUpdateEnabled() {
return isDstFileUpdateEnabled;
}
/**
* 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).
*/
@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).
*
* @return the value
*/
public java.util.Map> getDefinedTags() {
return definedTags;
}
@com.fasterxml.jackson.annotation.JsonProperty("backupConfig")
private final AutonomousContainerDatabaseBackupConfig backupConfig;
public AutonomousContainerDatabaseBackupConfig getBackupConfig() {
return backupConfig;
}
@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("UpdateAutonomousContainerDatabaseDetails(");
sb.append("super=").append(super.toString());
sb.append("displayName=").append(String.valueOf(this.displayName));
sb.append(", patchModel=").append(String.valueOf(this.patchModel));
sb.append(", maintenanceWindowDetails=")
.append(String.valueOf(this.maintenanceWindowDetails));
sb.append(", standbyMaintenanceBufferInDays=")
.append(String.valueOf(this.standbyMaintenanceBufferInDays));
sb.append(", versionPreference=").append(String.valueOf(this.versionPreference));
sb.append(", isDstFileUpdateEnabled=").append(String.valueOf(this.isDstFileUpdateEnabled));
sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
sb.append(", definedTags=").append(String.valueOf(this.definedTags));
sb.append(", backupConfig=").append(String.valueOf(this.backupConfig));
sb.append(")");
return sb.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof UpdateAutonomousContainerDatabaseDetails)) {
return false;
}
UpdateAutonomousContainerDatabaseDetails other =
(UpdateAutonomousContainerDatabaseDetails) o;
return java.util.Objects.equals(this.displayName, other.displayName)
&& java.util.Objects.equals(this.patchModel, other.patchModel)
&& java.util.Objects.equals(
this.maintenanceWindowDetails, other.maintenanceWindowDetails)
&& java.util.Objects.equals(
this.standbyMaintenanceBufferInDays, other.standbyMaintenanceBufferInDays)
&& java.util.Objects.equals(this.versionPreference, other.versionPreference)
&& java.util.Objects.equals(
this.isDstFileUpdateEnabled, other.isDstFileUpdateEnabled)
&& java.util.Objects.equals(this.freeformTags, other.freeformTags)
&& java.util.Objects.equals(this.definedTags, other.definedTags)
&& java.util.Objects.equals(this.backupConfig, other.backupConfig)
&& super.equals(other);
}
@Override
public int hashCode() {
final int PRIME = 59;
int result = 1;
result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
result = (result * PRIME) + (this.patchModel == null ? 43 : this.patchModel.hashCode());
result =
(result * PRIME)
+ (this.maintenanceWindowDetails == null
? 43
: this.maintenanceWindowDetails.hashCode());
result =
(result * PRIME)
+ (this.standbyMaintenanceBufferInDays == null
? 43
: this.standbyMaintenanceBufferInDays.hashCode());
result =
(result * PRIME)
+ (this.versionPreference == null ? 43 : this.versionPreference.hashCode());
result =
(result * PRIME)
+ (this.isDstFileUpdateEnabled == null
? 43
: this.isDstFileUpdateEnabled.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.backupConfig == null ? 43 : this.backupConfig.hashCode());
result = (result * PRIME) + super.hashCode();
return result;
}
}