getSupportedResourceManagement() {
+ return supportedResourceManagement;
+ }
+
/**
* The list of compatible shapes that this shape can be changed to. For more information, see
* [Changing the Shape of an
@@ -1364,6 +1446,8 @@ public String toString(boolean includeByteArrayContents) {
sb.append(", quotaNames=").append(String.valueOf(this.quotaNames));
sb.append(", isSubcore=").append(String.valueOf(this.isSubcore));
sb.append(", isFlexible=").append(String.valueOf(this.isFlexible));
+ sb.append(", supportedResourceManagement=")
+ .append(String.valueOf(this.supportedResourceManagement));
sb.append(", resizeCompatibleShapes=").append(String.valueOf(this.resizeCompatibleShapes));
sb.append(", recommendedAlternatives=")
.append(String.valueOf(this.recommendedAlternatives));
@@ -1419,6 +1503,8 @@ public boolean equals(Object o) {
&& java.util.Objects.equals(this.quotaNames, other.quotaNames)
&& java.util.Objects.equals(this.isSubcore, other.isSubcore)
&& java.util.Objects.equals(this.isFlexible, other.isFlexible)
+ && java.util.Objects.equals(
+ this.supportedResourceManagement, other.supportedResourceManagement)
&& java.util.Objects.equals(
this.resizeCompatibleShapes, other.resizeCompatibleShapes)
&& java.util.Objects.equals(
@@ -1519,6 +1605,11 @@ public int hashCode() {
result = (result * PRIME) + (this.quotaNames == null ? 43 : this.quotaNames.hashCode());
result = (result * PRIME) + (this.isSubcore == null ? 43 : this.isSubcore.hashCode());
result = (result * PRIME) + (this.isFlexible == null ? 43 : this.isFlexible.hashCode());
+ result =
+ (result * PRIME)
+ + (this.supportedResourceManagement == null
+ ? 43
+ : this.supportedResourceManagement.hashCode());
result =
(result * PRIME)
+ (this.resizeCompatibleShapes == null
diff --git a/bmc-core/src/main/resources/META-INF/native-image/com.oracle.oci.sdk/oci-java-sdk-core/reflect-config.json b/bmc-core/src/main/resources/META-INF/native-image/com.oracle.oci.sdk/oci-java-sdk-core/reflect-config.json
index ef0fbfbba83..cc58bf237dd 100644
--- a/bmc-core/src/main/resources/META-INF/native-image/com.oracle.oci.sdk/oci-java-sdk-core/reflect-config.json
+++ b/bmc-core/src/main/resources/META-INF/native-image/com.oracle.oci.sdk/oci-java-sdk-core/reflect-config.json
@@ -9187,6 +9187,12 @@
"allDeclaredFields": true,
"allDeclaredMethods": true
},
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.core.model.Shape$SupportedResourceManagement",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true
+ },
{
"condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
"name": "com.oracle.bmc.core.model.ShapeAccessControlServiceEnabledPlatformOptions",
diff --git a/bmc-costad/pom.xml b/bmc-costad/pom.xml
index 6493ec9aea5..b7655af6a20 100644
--- a/bmc-costad/pom.xml
+++ b/bmc-costad/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-costad
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-dashboardservice/pom.xml b/bmc-dashboardservice/pom.xml
index 0800aef5ebc..e6a7626c00b 100644
--- a/bmc-dashboardservice/pom.xml
+++ b/bmc-dashboardservice/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-dashboardservice
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-database/pom.xml b/bmc-database/pom.xml
index 07c1b6d1683..91c3af14fe1 100644
--- a/bmc-database/pom.xml
+++ b/bmc-database/pom.xml
@@ -5,7 +5,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
@@ -18,12 +18,12 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
com.oracle.oci.sdk
oci-java-sdk-workrequests
- 3.98.0
+ 3.99.0
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/Database.java b/bmc-database/src/main/java/com/oracle/bmc/database/Database.java
index 1869de4350c..6e387da0d3a 100644
--- a/bmc-database/src/main/java/com/oracle/bmc/database/Database.java
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/Database.java
@@ -1471,6 +1471,22 @@ CreateDataGuardAssociationResponse createDataGuardAssociation(
*/
CreateDatabaseResponse createDatabase(CreateDatabaseRequest request);
+ /**
+ * Creates a Database Snapshot
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ * Example: Click here to see how to use
+ * CreateDatabaseSnapshot API.
+ */
+ CreateDatabaseSnapshotResponse createDatabaseSnapshot(CreateDatabaseSnapshotRequest request);
+
/**
* create database software image in the specified compartment.
*
@@ -2169,6 +2185,22 @@ DeleteCloudExadataInfrastructureResponse deleteCloudExadataInfrastructure(
*/
DeleteDatabaseResponse deleteDatabase(DeleteDatabaseRequest request);
+ /**
+ * Deletes the specified Exadata Database Snapshot.
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * DeleteDatabaseSnapshot API.
+ */
+ DeleteDatabaseSnapshotResponse deleteDatabaseSnapshot(DeleteDatabaseSnapshotRequest request);
+
/**
* Delete a database software image
*
@@ -3895,6 +3927,22 @@ GetConsoleHistoryContentResponse getConsoleHistoryContent(
*/
GetDatabaseResponse getDatabase(GetDatabaseRequest request);
+ /**
+ * Gets information about the specified Exadata Database Snapshot.
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use GetDatabaseSnapshot
+ * API.
+ */
+ GetDatabaseSnapshotResponse getDatabaseSnapshot(GetDatabaseSnapshotRequest request);
+
/**
* Gets information about the specified database software image.
*
@@ -5477,6 +5525,22 @@ ListContainerDatabasePatchesResponse listContainerDatabasePatches(
ListDataGuardAssociationsResponse listDataGuardAssociations(
ListDataGuardAssociationsRequest request);
+ /**
+ * Gets a list of the Exadata Database Snapshots in the specified compartment.
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * ListDatabaseSnapshots API.
+ */
+ ListDatabaseSnapshotsResponse listDatabaseSnapshots(ListDatabaseSnapshotsRequest request);
+
/**
* Gets a list of the database software images in the specified compartment.
*
@@ -8088,6 +8152,22 @@ UpdateDataGuardAssociationResponse updateDataGuardAssociation(
*/
UpdateDatabaseResponse updateDatabase(UpdateDatabaseRequest request);
+ /**
+ * Updates a Database Snapshot
+ *
+ * @param request The request object containing the details to send
+ * @return A response object containing details about the completed operation
+ * @throws BmcException when an error occurs. This operation will not retry by default, users
+ * can also use RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION provided by the SDK to
+ * enable retries for it. The specifics of the default retry strategy are described here
+ * https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javasdkconcepts.htm#javasdkconcepts_topic_Retries
+ *
Example: Click here to see how to use
+ * UpdateDatabaseSnapshot API.
+ */
+ UpdateDatabaseSnapshotResponse updateDatabaseSnapshot(UpdateDatabaseSnapshotRequest request);
+
/**
* Updates the properties of a Database Software Image, like Display Nmae
*
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseAsync.java b/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseAsync.java
index 1dbfc37c50d..b5b1002fa70 100644
--- a/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseAsync.java
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseAsync.java
@@ -1500,6 +1500,22 @@ java.util.concurrent.Future createDatabase(
com.oracle.bmc.responses.AsyncHandler
handler);
+ /**
+ * Creates a Database Snapshot
+ *
+ * @param request The request object containing the details to send
+ * @param handler The request handler to invoke upon completion, may be null.
+ * @return A Future that can be used to get the response if no AsyncHandler was provided. Note,
+ * if you provide an AsyncHandler and use the Future, some types of responses (like
+ * java.io.InputStream) may not be able to be read in both places as the underlying stream
+ * may only be consumed once.
+ */
+ java.util.concurrent.Future createDatabaseSnapshot(
+ CreateDatabaseSnapshotRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ CreateDatabaseSnapshotRequest, CreateDatabaseSnapshotResponse>
+ handler);
+
/**
* create database software image in the specified compartment.
*
@@ -2207,6 +2223,22 @@ java.util.concurrent.Future deleteDatabase(
com.oracle.bmc.responses.AsyncHandler
handler);
+ /**
+ * Deletes the specified Exadata Database Snapshot.
+ *
+ * @param request The request object containing the details to send
+ * @param handler The request handler to invoke upon completion, may be null.
+ * @return A Future that can be used to get the response if no AsyncHandler was provided. Note,
+ * if you provide an AsyncHandler and use the Future, some types of responses (like
+ * java.io.InputStream) may not be able to be read in both places as the underlying stream
+ * may only be consumed once.
+ */
+ java.util.concurrent.Future deleteDatabaseSnapshot(
+ DeleteDatabaseSnapshotRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ DeleteDatabaseSnapshotRequest, DeleteDatabaseSnapshotResponse>
+ handler);
+
/**
* Delete a database software image
*
@@ -3948,6 +3980,22 @@ java.util.concurrent.Future getDatabase(
GetDatabaseRequest request,
com.oracle.bmc.responses.AsyncHandler handler);
+ /**
+ * Gets information about the specified Exadata Database Snapshot.
+ *
+ * @param request The request object containing the details to send
+ * @param handler The request handler to invoke upon completion, may be null.
+ * @return A Future that can be used to get the response if no AsyncHandler was provided. Note,
+ * if you provide an AsyncHandler and use the Future, some types of responses (like
+ * java.io.InputStream) may not be able to be read in both places as the underlying stream
+ * may only be consumed once.
+ */
+ java.util.concurrent.Future getDatabaseSnapshot(
+ GetDatabaseSnapshotRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ GetDatabaseSnapshotRequest, GetDatabaseSnapshotResponse>
+ handler);
+
/**
* Gets information about the specified database software image.
*
@@ -5543,6 +5591,22 @@ java.util.concurrent.Future listDataGuardAsso
ListDataGuardAssociationsRequest, ListDataGuardAssociationsResponse>
handler);
+ /**
+ * Gets a list of the Exadata Database Snapshots in the specified compartment.
+ *
+ * @param request The request object containing the details to send
+ * @param handler The request handler to invoke upon completion, may be null.
+ * @return A Future that can be used to get the response if no AsyncHandler was provided. Note,
+ * if you provide an AsyncHandler and use the Future, some types of responses (like
+ * java.io.InputStream) may not be able to be read in both places as the underlying stream
+ * may only be consumed once.
+ */
+ java.util.concurrent.Future listDatabaseSnapshots(
+ ListDatabaseSnapshotsRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ ListDatabaseSnapshotsRequest, ListDatabaseSnapshotsResponse>
+ handler);
+
/**
* Gets a list of the database software images in the specified compartment.
*
@@ -8183,6 +8247,22 @@ java.util.concurrent.Future updateDatabase(
com.oracle.bmc.responses.AsyncHandler
handler);
+ /**
+ * Updates a Database Snapshot
+ *
+ * @param request The request object containing the details to send
+ * @param handler The request handler to invoke upon completion, may be null.
+ * @return A Future that can be used to get the response if no AsyncHandler was provided. Note,
+ * if you provide an AsyncHandler and use the Future, some types of responses (like
+ * java.io.InputStream) may not be able to be read in both places as the underlying stream
+ * may only be consumed once.
+ */
+ java.util.concurrent.Future updateDatabaseSnapshot(
+ UpdateDatabaseSnapshotRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ UpdateDatabaseSnapshotRequest, UpdateDatabaseSnapshotResponse>
+ handler);
+
/**
* Updates the properties of a Database Software Image, like Display Nmae
*
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseAsyncClient.java b/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseAsyncClient.java
index 0679ae52982..07faa6d638a 100644
--- a/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseAsyncClient.java
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseAsyncClient.java
@@ -3275,6 +3275,39 @@ public java.util.concurrent.Future createDatabase(
.callAsync(handler);
}
+ @Override
+ public java.util.concurrent.Future createDatabaseSnapshot(
+ CreateDatabaseSnapshotRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ CreateDatabaseSnapshotRequest, CreateDatabaseSnapshotResponse>
+ handler) {
+ Objects.requireNonNull(
+ request.getCreateDatabaseSnapshotDetails(),
+ "createDatabaseSnapshotDetails is required");
+
+ return clientCall(request, CreateDatabaseSnapshotResponse::builder)
+ .logger(LOG, "createDatabaseSnapshot")
+ .serviceDetails("Database", "CreateDatabaseSnapshot", "")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CreateDatabaseSnapshotRequest::builder)
+ .basePath("/20160918")
+ .appendPathParam("databaseSnapshots")
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.database.model.DatabaseSnapshot.class,
+ CreateDatabaseSnapshotResponse.Builder::databaseSnapshot)
+ .handleResponseHeaderString(
+ "opc-work-request-id",
+ CreateDatabaseSnapshotResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString("etag", CreateDatabaseSnapshotResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", CreateDatabaseSnapshotResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
@Override
public java.util.concurrent.Future
createDatabaseSoftwareImage(
@@ -4682,6 +4715,37 @@ public java.util.concurrent.Future deleteDatabase(
.callAsync(handler);
}
+ @Override
+ public java.util.concurrent.Future deleteDatabaseSnapshot(
+ DeleteDatabaseSnapshotRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ DeleteDatabaseSnapshotRequest, DeleteDatabaseSnapshotResponse>
+ handler) {
+
+ Validate.notBlank(request.getDatabaseSnapshotId(), "databaseSnapshotId must not be blank");
+
+ return clientCall(request, DeleteDatabaseSnapshotResponse::builder)
+ .logger(LOG, "deleteDatabaseSnapshot")
+ .serviceDetails(
+ "Database",
+ "DeleteDatabaseSnapshot",
+ "https://docs.oracle.com/iaas/api/#/en/database/20160918/DatabaseSnapshot/DeleteDatabaseSnapshot")
+ .method(com.oracle.bmc.http.client.Method.DELETE)
+ .requestBuilder(DeleteDatabaseSnapshotRequest::builder)
+ .basePath("/20160918")
+ .appendPathParam("databaseSnapshots")
+ .appendPathParam(request.getDatabaseSnapshotId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleResponseHeaderString(
+ "opc-work-request-id",
+ DeleteDatabaseSnapshotResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", DeleteDatabaseSnapshotResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
@Override
public java.util.concurrent.Future
deleteDatabaseSoftwareImage(
@@ -8419,6 +8483,37 @@ public java.util.concurrent.Future getDatabase(
.callAsync(handler);
}
+ @Override
+ public java.util.concurrent.Future getDatabaseSnapshot(
+ GetDatabaseSnapshotRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ GetDatabaseSnapshotRequest, GetDatabaseSnapshotResponse>
+ handler) {
+
+ Validate.notBlank(request.getDatabaseSnapshotId(), "databaseSnapshotId must not be blank");
+
+ return clientCall(request, GetDatabaseSnapshotResponse::builder)
+ .logger(LOG, "getDatabaseSnapshot")
+ .serviceDetails(
+ "Database",
+ "GetDatabaseSnapshot",
+ "https://docs.oracle.com/iaas/api/#/en/database/20160918/DatabaseSnapshot/GetDatabaseSnapshot")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetDatabaseSnapshotRequest::builder)
+ .basePath("/20160918")
+ .appendPathParam("databaseSnapshots")
+ .appendPathParam(request.getDatabaseSnapshotId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.database.model.DatabaseSnapshot.class,
+ GetDatabaseSnapshotResponse.Builder::databaseSnapshot)
+ .handleResponseHeaderString("etag", GetDatabaseSnapshotResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetDatabaseSnapshotResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
@Override
public java.util.concurrent.Future getDatabaseSoftwareImage(
GetDatabaseSoftwareImageRequest request,
@@ -11742,6 +11837,44 @@ public java.util.concurrent.Future listDataGu
.callAsync(handler);
}
+ @Override
+ public java.util.concurrent.Future listDatabaseSnapshots(
+ ListDatabaseSnapshotsRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ ListDatabaseSnapshotsRequest, ListDatabaseSnapshotsResponse>
+ handler) {
+
+ return clientCall(request, ListDatabaseSnapshotsResponse::builder)
+ .logger(LOG, "listDatabaseSnapshots")
+ .serviceDetails(
+ "Database",
+ "ListDatabaseSnapshots",
+ "https://docs.oracle.com/iaas/api/#/en/database/20160918/DatabaseSnapshot/ListDatabaseSnapshots")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListDatabaseSnapshotsRequest::builder)
+ .basePath("/20160918")
+ .appendPathParam("databaseSnapshots")
+ .appendQueryParam("compartmentId", request.getCompartmentId())
+ .appendQueryParam("limit", request.getLimit())
+ .appendQueryParam("page", request.getPage())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .appendQueryParam("name", request.getName())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendEnumQueryParam("lifecycleState", request.getLifecycleState())
+ .appendQueryParam("databaseId", request.getDatabaseId())
+ .appendQueryParam("clusterId", request.getClusterId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.database.model.DatabaseSnapshotCollection.class,
+ ListDatabaseSnapshotsResponse.Builder::databaseSnapshotCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListDatabaseSnapshotsResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListDatabaseSnapshotsResponse.Builder::opcNextPage)
+ .callAsync(handler);
+ }
+
@Override
public java.util.concurrent.Future
listDatabaseSoftwareImages(
@@ -17836,6 +17969,43 @@ public java.util.concurrent.Future updateDatabase(
.callAsync(handler);
}
+ @Override
+ public java.util.concurrent.Future updateDatabaseSnapshot(
+ UpdateDatabaseSnapshotRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ UpdateDatabaseSnapshotRequest, UpdateDatabaseSnapshotResponse>
+ handler) {
+
+ Validate.notBlank(request.getDatabaseSnapshotId(), "databaseSnapshotId must not be blank");
+ Objects.requireNonNull(
+ request.getUpdateDatabaseSnapshotDetails(),
+ "updateDatabaseSnapshotDetails is required");
+
+ return clientCall(request, UpdateDatabaseSnapshotResponse::builder)
+ .logger(LOG, "updateDatabaseSnapshot")
+ .serviceDetails(
+ "Database",
+ "UpdateDatabaseSnapshot",
+ "https://docs.oracle.com/iaas/api/#/en/database/20160918/DatabaseSnapshot/UpdateDatabaseSnapshot")
+ .method(com.oracle.bmc.http.client.Method.PUT)
+ .requestBuilder(UpdateDatabaseSnapshotRequest::builder)
+ .basePath("/20160918")
+ .appendPathParam("databaseSnapshots")
+ .appendPathParam(request.getDatabaseSnapshotId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.database.model.DatabaseSnapshot.class,
+ UpdateDatabaseSnapshotResponse.Builder::databaseSnapshot)
+ .handleResponseHeaderString("etag", UpdateDatabaseSnapshotResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", UpdateDatabaseSnapshotResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
@Override
public java.util.concurrent.Future
updateDatabaseSoftwareImage(
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseClient.java b/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseClient.java
index 7f4edf0f330..e7f27f29730 100644
--- a/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseClient.java
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseClient.java
@@ -2977,6 +2977,36 @@ public CreateDatabaseResponse createDatabase(CreateDatabaseRequest request) {
.callSync();
}
+ @Override
+ public CreateDatabaseSnapshotResponse createDatabaseSnapshot(
+ CreateDatabaseSnapshotRequest request) {
+ Objects.requireNonNull(
+ request.getCreateDatabaseSnapshotDetails(),
+ "createDatabaseSnapshotDetails is required");
+
+ return clientCall(request, CreateDatabaseSnapshotResponse::builder)
+ .logger(LOG, "createDatabaseSnapshot")
+ .serviceDetails("Database", "CreateDatabaseSnapshot", "")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CreateDatabaseSnapshotRequest::builder)
+ .basePath("/20160918")
+ .appendPathParam("databaseSnapshots")
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.database.model.DatabaseSnapshot.class,
+ CreateDatabaseSnapshotResponse.Builder::databaseSnapshot)
+ .handleResponseHeaderString(
+ "opc-work-request-id",
+ CreateDatabaseSnapshotResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString("etag", CreateDatabaseSnapshotResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", CreateDatabaseSnapshotResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
@Override
public CreateDatabaseSoftwareImageResponse createDatabaseSoftwareImage(
CreateDatabaseSoftwareImageRequest request) {
@@ -4228,6 +4258,34 @@ public DeleteDatabaseResponse deleteDatabase(DeleteDatabaseRequest request) {
.callSync();
}
+ @Override
+ public DeleteDatabaseSnapshotResponse deleteDatabaseSnapshot(
+ DeleteDatabaseSnapshotRequest request) {
+
+ Validate.notBlank(request.getDatabaseSnapshotId(), "databaseSnapshotId must not be blank");
+
+ return clientCall(request, DeleteDatabaseSnapshotResponse::builder)
+ .logger(LOG, "deleteDatabaseSnapshot")
+ .serviceDetails(
+ "Database",
+ "DeleteDatabaseSnapshot",
+ "https://docs.oracle.com/iaas/api/#/en/database/20160918/DatabaseSnapshot/DeleteDatabaseSnapshot")
+ .method(com.oracle.bmc.http.client.Method.DELETE)
+ .requestBuilder(DeleteDatabaseSnapshotRequest::builder)
+ .basePath("/20160918")
+ .appendPathParam("databaseSnapshots")
+ .appendPathParam(request.getDatabaseSnapshotId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleResponseHeaderString(
+ "opc-work-request-id",
+ DeleteDatabaseSnapshotResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", DeleteDatabaseSnapshotResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
@Override
public DeleteDatabaseSoftwareImageResponse deleteDatabaseSoftwareImage(
DeleteDatabaseSoftwareImageRequest request) {
@@ -7560,6 +7618,33 @@ public GetDatabaseResponse getDatabase(GetDatabaseRequest request) {
.callSync();
}
+ @Override
+ public GetDatabaseSnapshotResponse getDatabaseSnapshot(GetDatabaseSnapshotRequest request) {
+
+ Validate.notBlank(request.getDatabaseSnapshotId(), "databaseSnapshotId must not be blank");
+
+ return clientCall(request, GetDatabaseSnapshotResponse::builder)
+ .logger(LOG, "getDatabaseSnapshot")
+ .serviceDetails(
+ "Database",
+ "GetDatabaseSnapshot",
+ "https://docs.oracle.com/iaas/api/#/en/database/20160918/DatabaseSnapshot/GetDatabaseSnapshot")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetDatabaseSnapshotRequest::builder)
+ .basePath("/20160918")
+ .appendPathParam("databaseSnapshots")
+ .appendPathParam(request.getDatabaseSnapshotId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.database.model.DatabaseSnapshot.class,
+ GetDatabaseSnapshotResponse.Builder::databaseSnapshot)
+ .handleResponseHeaderString("etag", GetDatabaseSnapshotResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetDatabaseSnapshotResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
@Override
public GetDatabaseSoftwareImageResponse getDatabaseSoftwareImage(
GetDatabaseSoftwareImageRequest request) {
@@ -10508,6 +10593,41 @@ public ListDataGuardAssociationsResponse listDataGuardAssociations(
.callSync();
}
+ @Override
+ public ListDatabaseSnapshotsResponse listDatabaseSnapshots(
+ ListDatabaseSnapshotsRequest request) {
+
+ return clientCall(request, ListDatabaseSnapshotsResponse::builder)
+ .logger(LOG, "listDatabaseSnapshots")
+ .serviceDetails(
+ "Database",
+ "ListDatabaseSnapshots",
+ "https://docs.oracle.com/iaas/api/#/en/database/20160918/DatabaseSnapshot/ListDatabaseSnapshots")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListDatabaseSnapshotsRequest::builder)
+ .basePath("/20160918")
+ .appendPathParam("databaseSnapshots")
+ .appendQueryParam("compartmentId", request.getCompartmentId())
+ .appendQueryParam("limit", request.getLimit())
+ .appendQueryParam("page", request.getPage())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .appendQueryParam("name", request.getName())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendEnumQueryParam("lifecycleState", request.getLifecycleState())
+ .appendQueryParam("databaseId", request.getDatabaseId())
+ .appendQueryParam("clusterId", request.getClusterId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.database.model.DatabaseSnapshotCollection.class,
+ ListDatabaseSnapshotsResponse.Builder::databaseSnapshotCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListDatabaseSnapshotsResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListDatabaseSnapshotsResponse.Builder::opcNextPage)
+ .callSync();
+ }
+
@Override
public ListDatabaseSoftwareImagesResponse listDatabaseSoftwareImages(
ListDatabaseSoftwareImagesRequest request) {
@@ -15980,6 +16100,40 @@ public UpdateDatabaseResponse updateDatabase(UpdateDatabaseRequest request) {
.callSync();
}
+ @Override
+ public UpdateDatabaseSnapshotResponse updateDatabaseSnapshot(
+ UpdateDatabaseSnapshotRequest request) {
+
+ Validate.notBlank(request.getDatabaseSnapshotId(), "databaseSnapshotId must not be blank");
+ Objects.requireNonNull(
+ request.getUpdateDatabaseSnapshotDetails(),
+ "updateDatabaseSnapshotDetails is required");
+
+ return clientCall(request, UpdateDatabaseSnapshotResponse::builder)
+ .logger(LOG, "updateDatabaseSnapshot")
+ .serviceDetails(
+ "Database",
+ "UpdateDatabaseSnapshot",
+ "https://docs.oracle.com/iaas/api/#/en/database/20160918/DatabaseSnapshot/UpdateDatabaseSnapshot")
+ .method(com.oracle.bmc.http.client.Method.PUT)
+ .requestBuilder(UpdateDatabaseSnapshotRequest::builder)
+ .basePath("/20160918")
+ .appendPathParam("databaseSnapshots")
+ .appendPathParam(request.getDatabaseSnapshotId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.database.model.DatabaseSnapshot.class,
+ UpdateDatabaseSnapshotResponse.Builder::databaseSnapshot)
+ .handleResponseHeaderString("etag", UpdateDatabaseSnapshotResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", UpdateDatabaseSnapshotResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
@Override
public UpdateDatabaseSoftwareImageResponse updateDatabaseSoftwareImage(
UpdateDatabaseSoftwareImageRequest request) {
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/DatabasePaginators.java b/bmc-database/src/main/java/com/oracle/bmc/database/DatabasePaginators.java
index d7fab4da586..0b3c5afdebc 100644
--- a/bmc-database/src/main/java/com/oracle/bmc/database/DatabasePaginators.java
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/DatabasePaginators.java
@@ -4701,6 +4701,128 @@ public ListDataGuardAssociationsResponse apply(
});
}
+ /**
+ * Creates a new iterable which will iterate over the responses received from the
+ * listDatabaseSnapshots operation. This iterable will fetch more data from the server as
+ * needed.
+ *
+ * @param request a request which can be sent to the service operation
+ * @return an {@link java.lang.Iterable} which can be used to iterate over the responses
+ * received from the service.
+ */
+ public Iterable listDatabaseSnapshotsResponseIterator(
+ final ListDatabaseSnapshotsRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseIterable<
+ ListDatabaseSnapshotsRequest.Builder,
+ ListDatabaseSnapshotsRequest,
+ ListDatabaseSnapshotsResponse>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListDatabaseSnapshotsRequest.Builder get() {
+ return ListDatabaseSnapshotsRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListDatabaseSnapshotsResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListDatabaseSnapshotsRequest.Builder>,
+ ListDatabaseSnapshotsRequest>() {
+ @Override
+ public ListDatabaseSnapshotsRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListDatabaseSnapshotsRequest.Builder>
+ input) {
+ if (input.getNextPageToken() == null) {
+ return input.getRequestBuilder().build();
+ } else {
+ return input.getRequestBuilder()
+ .page(input.getNextPageToken().orElse(null))
+ .build();
+ }
+ }
+ },
+ new java.util.function.Function<
+ ListDatabaseSnapshotsRequest, ListDatabaseSnapshotsResponse>() {
+ @Override
+ public ListDatabaseSnapshotsResponse apply(
+ ListDatabaseSnapshotsRequest request) {
+ return client.listDatabaseSnapshots(request);
+ }
+ });
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the {@link
+ * com.oracle.bmc.database.model.DatabaseSnapshotSummary} objects contained in responses from
+ * the listDatabaseSnapshots operation. This iterable will fetch more data from the server as
+ * needed.
+ *
+ * @param request a request which can be sent to the service operation
+ * @return an {@link java.lang.Iterable} which can be used to iterate over the {@link
+ * com.oracle.bmc.database.model.DatabaseSnapshotSummary} objects contained in responses
+ * received from the service.
+ */
+ public Iterable
+ listDatabaseSnapshotsRecordIterator(final ListDatabaseSnapshotsRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseRecordIterable<
+ ListDatabaseSnapshotsRequest.Builder,
+ ListDatabaseSnapshotsRequest,
+ ListDatabaseSnapshotsResponse,
+ com.oracle.bmc.database.model.DatabaseSnapshotSummary>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListDatabaseSnapshotsRequest.Builder get() {
+ return ListDatabaseSnapshotsRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListDatabaseSnapshotsResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListDatabaseSnapshotsRequest.Builder>,
+ ListDatabaseSnapshotsRequest>() {
+ @Override
+ public ListDatabaseSnapshotsRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListDatabaseSnapshotsRequest.Builder>
+ input) {
+ if (input.getNextPageToken() == null) {
+ return input.getRequestBuilder().build();
+ } else {
+ return input.getRequestBuilder()
+ .page(input.getNextPageToken().orElse(null))
+ .build();
+ }
+ }
+ },
+ new java.util.function.Function<
+ ListDatabaseSnapshotsRequest, ListDatabaseSnapshotsResponse>() {
+ @Override
+ public ListDatabaseSnapshotsResponse apply(
+ ListDatabaseSnapshotsRequest request) {
+ return client.listDatabaseSnapshots(request);
+ }
+ },
+ new java.util.function.Function<
+ ListDatabaseSnapshotsResponse,
+ java.util.List>() {
+ @Override
+ public java.util.List
+ apply(ListDatabaseSnapshotsResponse response) {
+ return response.getDatabaseSnapshotCollection().getItems();
+ }
+ });
+ }
+
/**
* Creates a new iterable which will iterate over the responses received from the
* listDatabaseSoftwareImages operation. This iterable will fetch more data from the server as
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseWaiters.java b/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseWaiters.java
index a264d717c8d..94cabc889ab 100644
--- a/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseWaiters.java
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/DatabaseWaiters.java
@@ -4821,6 +4821,69 @@ public CreateDatabaseResponse call() throws Exception {
request);
}
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using the default configuration.
+ *
+ * @param request the request to send
+ * @return a new {@link com.oracle.bmc.waiter.Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter<
+ CreateDatabaseSnapshotRequest, CreateDatabaseSnapshotResponse>
+ forCreateDatabaseSnapshot(CreateDatabaseSnapshotRequest request) {
+ return forCreateDatabaseSnapshot(
+ request,
+ com.oracle.bmc.waiter.Waiters.DEFAULT_POLLING_TERMINATION_STRATEGY,
+ com.oracle.bmc.waiter.Waiters.DEFAULT_POLLING_DELAY_STRATEGY);
+ }
+
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using the provided configuration.
+ *
+ * @param request the request to send
+ * @param terminationStrategy the {@link com.oracle.bmc.waiter.TerminationStrategy} to use
+ * @param delayStrategy the {@link com.oracle.bmc.waiter.DelayStrategy} to use
+ * @return a new {@link com.oracle.bmc.waiter.Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter<
+ CreateDatabaseSnapshotRequest, CreateDatabaseSnapshotResponse>
+ forCreateDatabaseSnapshot(
+ CreateDatabaseSnapshotRequest request,
+ com.oracle.bmc.waiter.TerminationStrategy terminationStrategy,
+ com.oracle.bmc.waiter.DelayStrategy delayStrategy) {
+ if (workRequestClient == null) {
+ throw new IllegalStateException(
+ "A WorkRequestClient must be supplied to this waiter for this operation");
+ }
+
+ return new com.oracle.bmc.waiter.internal.SimpleWaiterImpl<>(
+ executorService,
+ new java.util.concurrent.Callable() {
+ @Override
+ public CreateDatabaseSnapshotResponse call() throws Exception {
+ final CreateDatabaseSnapshotResponse response =
+ client.createDatabaseSnapshot(request);
+
+ if (response.getOpcWorkRequestId() != null) {
+ final com.oracle.bmc.workrequests.requests.GetWorkRequestRequest
+ getWorkRequestRequest =
+ com.oracle.bmc.workrequests.requests
+ .GetWorkRequestRequest.builder()
+ .workRequestId(response.getOpcWorkRequestId())
+ .build();
+ workRequestClient
+ .getWaiters()
+ .forWorkRequest(
+ getWorkRequestRequest,
+ terminationStrategy,
+ delayStrategy)
+ .execute();
+ }
+ return response;
+ }
+ },
+ request);
+ }
+
/**
* Creates a new {@link com.oracle.bmc.waiter.Waiter} using the default configuration.
*
@@ -7118,6 +7181,69 @@ public DeleteDatabaseResponse call() throws Exception {
request);
}
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using the default configuration.
+ *
+ * @param request the request to send
+ * @return a new {@link com.oracle.bmc.waiter.Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter<
+ DeleteDatabaseSnapshotRequest, DeleteDatabaseSnapshotResponse>
+ forDeleteDatabaseSnapshot(DeleteDatabaseSnapshotRequest request) {
+ return forDeleteDatabaseSnapshot(
+ request,
+ com.oracle.bmc.waiter.Waiters.DEFAULT_POLLING_TERMINATION_STRATEGY,
+ com.oracle.bmc.waiter.Waiters.DEFAULT_POLLING_DELAY_STRATEGY);
+ }
+
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using the provided configuration.
+ *
+ * @param request the request to send
+ * @param terminationStrategy the {@link com.oracle.bmc.waiter.TerminationStrategy} to use
+ * @param delayStrategy the {@link com.oracle.bmc.waiter.DelayStrategy} to use
+ * @return a new {@link com.oracle.bmc.waiter.Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter<
+ DeleteDatabaseSnapshotRequest, DeleteDatabaseSnapshotResponse>
+ forDeleteDatabaseSnapshot(
+ DeleteDatabaseSnapshotRequest request,
+ com.oracle.bmc.waiter.TerminationStrategy terminationStrategy,
+ com.oracle.bmc.waiter.DelayStrategy delayStrategy) {
+ if (workRequestClient == null) {
+ throw new IllegalStateException(
+ "A WorkRequestClient must be supplied to this waiter for this operation");
+ }
+
+ return new com.oracle.bmc.waiter.internal.SimpleWaiterImpl<>(
+ executorService,
+ new java.util.concurrent.Callable() {
+ @Override
+ public DeleteDatabaseSnapshotResponse call() throws Exception {
+ final DeleteDatabaseSnapshotResponse response =
+ client.deleteDatabaseSnapshot(request);
+
+ if (response.getOpcWorkRequestId() != null) {
+ final com.oracle.bmc.workrequests.requests.GetWorkRequestRequest
+ getWorkRequestRequest =
+ com.oracle.bmc.workrequests.requests
+ .GetWorkRequestRequest.builder()
+ .workRequestId(response.getOpcWorkRequestId())
+ .build();
+ workRequestClient
+ .getWaiters()
+ .forWorkRequest(
+ getWorkRequestRequest,
+ terminationStrategy,
+ delayStrategy)
+ .execute();
+ }
+ return response;
+ }
+ },
+ request);
+ }
+
/**
* Creates a new {@link com.oracle.bmc.waiter.Waiter} using the default configuration.
*
@@ -13419,6 +13545,113 @@ public boolean test(GetDatabaseResponse response) {
request);
}
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using the default configuration.
+ *
+ * @param request the request to send
+ * @param targetStates the desired states to wait for. If multiple states are provided then the
+ * waiter will return once the resource reaches any of the provided states
+ * @return a new {@code Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter
+ forDatabaseSnapshot(
+ GetDatabaseSnapshotRequest request,
+ com.oracle.bmc.database.model.DatabaseSnapshot.LifecycleState... targetStates) {
+ com.oracle.bmc.util.internal.Validate.notEmpty(
+ targetStates, "At least one targetState must be provided");
+ com.oracle.bmc.util.internal.Validate.noNullElements(
+ targetStates, "Null targetState values are not permitted");
+
+ return forDatabaseSnapshot(
+ com.oracle.bmc.waiter.Waiters.DEFAULT_POLLING_WAITER, request, targetStates);
+ }
+
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using the provided configuration.
+ *
+ * @param request the request to send
+ * @param targetState the desired state to wait for
+ * @param terminationStrategy the {@link com.oracle.bmc.waiter.TerminationStrategy} to use
+ * @param delayStrategy the {@link com.oracle.bmc.waiter.DelayStrategy} to use
+ * @return a new {@code com.oracle.bmc.waiter.Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter
+ forDatabaseSnapshot(
+ GetDatabaseSnapshotRequest request,
+ com.oracle.bmc.database.model.DatabaseSnapshot.LifecycleState targetState,
+ com.oracle.bmc.waiter.TerminationStrategy terminationStrategy,
+ com.oracle.bmc.waiter.DelayStrategy delayStrategy) {
+ com.oracle.bmc.util.internal.Validate.notNull(
+ targetState, "The targetState cannot be null");
+
+ return forDatabaseSnapshot(
+ com.oracle.bmc.waiter.Waiters.newWaiter(terminationStrategy, delayStrategy),
+ request,
+ targetState);
+ }
+
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using the provided configuration.
+ *
+ * @param request the request to send
+ * @param terminationStrategy the {@link com.oracle.bmc.waiter.TerminationStrategy} to use
+ * @param delayStrategy the {@link com.oracle.bmc.waiter.DelayStrategy} to use
+ * @param targetStates the desired states to wait for. The waiter will return once the resource
+ * reaches any of the provided states
+ * @return a new {@code com.oracle.bmc.waiter.Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter
+ forDatabaseSnapshot(
+ GetDatabaseSnapshotRequest request,
+ com.oracle.bmc.waiter.TerminationStrategy terminationStrategy,
+ com.oracle.bmc.waiter.DelayStrategy delayStrategy,
+ com.oracle.bmc.database.model.DatabaseSnapshot.LifecycleState... targetStates) {
+ com.oracle.bmc.util.internal.Validate.notEmpty(
+ targetStates, "At least one target state must be provided");
+ com.oracle.bmc.util.internal.Validate.noNullElements(
+ targetStates, "Null target states are not permitted");
+
+ return forDatabaseSnapshot(
+ com.oracle.bmc.waiter.Waiters.newWaiter(terminationStrategy, delayStrategy),
+ request,
+ targetStates);
+ }
+
+ // Helper method to create a new Waiter for DatabaseSnapshot.
+ private com.oracle.bmc.waiter.Waiter
+ forDatabaseSnapshot(
+ com.oracle.bmc.waiter.BmcGenericWaiter waiter,
+ final GetDatabaseSnapshotRequest request,
+ final com.oracle.bmc.database.model.DatabaseSnapshot.LifecycleState...
+ targetStates) {
+ final java.util.Set
+ targetStatesSet = new java.util.HashSet<>(java.util.Arrays.asList(targetStates));
+
+ return new com.oracle.bmc.waiter.internal.SimpleWaiterImpl<>(
+ executorService,
+ waiter.toCallable(
+ () -> request,
+ new java.util.function.Function<
+ GetDatabaseSnapshotRequest, GetDatabaseSnapshotResponse>() {
+ @Override
+ public GetDatabaseSnapshotResponse apply(
+ GetDatabaseSnapshotRequest request) {
+ return client.getDatabaseSnapshot(request);
+ }
+ },
+ new java.util.function.Predicate() {
+ @Override
+ public boolean test(GetDatabaseSnapshotResponse response) {
+ return targetStatesSet.contains(
+ response.getDatabaseSnapshot().getLifecycleState());
+ }
+ },
+ targetStatesSet.contains(
+ com.oracle.bmc.database.model.DatabaseSnapshot.LifecycleState
+ .Terminated)),
+ request);
+ }
+
/**
* Creates a new {@link com.oracle.bmc.waiter.Waiter} using the default configuration.
*
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/model/CloneDatabaseDetails.java b/bmc-database/src/main/java/com/oracle/bmc/database/model/CloneDatabaseDetails.java
new file mode 100644
index 00000000000..06b6ed0dfbe
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/model/CloneDatabaseDetails.java
@@ -0,0 +1,1079 @@
+/**
+ * Copyright (c) 2016, 2026, 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;
+
+/**
+ *
+ * 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 = CloneDatabaseDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CloneDatabaseDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ public CloneDatabaseDetails(
+ String sourceDatabaseId,
+ Boolean isThinClone,
+ String sourceTdePassword,
+ String sourceAdminPassword,
+ EncryptionKeyLocationDetails sourceEncryptionKeyLocationDetails,
+ String tdeWalletPassword,
+ DbBackupConfig dbBackupConfig,
+ String adminPassword,
+ String dbUniqueName,
+ String dbName,
+ String characterSet,
+ String ncharacterSet,
+ String sidPrefix,
+ String keyStoreId,
+ EncryptionKeyLocationDetails encryptionKeyLocationDetails,
+ DatabaseStorageSizeDetails storageSizeDetails,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ DataSafeRegistrationRequestDetails dataSafeRegistrationDetails) {
+ super();
+ this.sourceDatabaseId = sourceDatabaseId;
+ this.isThinClone = isThinClone;
+ this.sourceTdePassword = sourceTdePassword != null ? sourceTdePassword.toCharArray() : null;
+ this.sourceAdminPassword =
+ sourceAdminPassword != null ? sourceAdminPassword.toCharArray() : null;
+ this.sourceEncryptionKeyLocationDetails = sourceEncryptionKeyLocationDetails;
+ this.tdeWalletPassword = tdeWalletPassword != null ? tdeWalletPassword.toCharArray() : null;
+ this.dbBackupConfig = dbBackupConfig;
+ this.adminPassword = adminPassword != null ? adminPassword.toCharArray() : null;
+ this.dbUniqueName = dbUniqueName;
+ this.dbName = dbName;
+ this.characterSet = characterSet;
+ this.ncharacterSet = ncharacterSet;
+ this.sidPrefix = sidPrefix;
+ this.keyStoreId = keyStoreId;
+ this.encryptionKeyLocationDetails = encryptionKeyLocationDetails;
+ this.storageSizeDetails = storageSizeDetails;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.dataSafeRegistrationDetails = dataSafeRegistrationDetails;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "sourceDatabaseId",
+ "isThinClone",
+ "sourceTdePassword",
+ "sourceAdminPassword",
+ "sourceEncryptionKeyLocationDetails",
+ "tdeWalletPassword",
+ "dbBackupConfig",
+ "adminPassword",
+ "dbUniqueName",
+ "dbName",
+ "characterSet",
+ "ncharacterSet",
+ "sidPrefix",
+ "keyStoreId",
+ "encryptionKeyLocationDetails",
+ "storageSizeDetails",
+ "freeformTags",
+ "definedTags",
+ "dataSafeRegistrationDetails"
+ })
+ public CloneDatabaseDetails(
+ String sourceDatabaseId,
+ Boolean isThinClone,
+ char[] sourceTdePassword,
+ char[] sourceAdminPassword,
+ EncryptionKeyLocationDetails sourceEncryptionKeyLocationDetails,
+ char[] tdeWalletPassword,
+ DbBackupConfig dbBackupConfig,
+ char[] adminPassword,
+ String dbUniqueName,
+ String dbName,
+ String characterSet,
+ String ncharacterSet,
+ String sidPrefix,
+ String keyStoreId,
+ EncryptionKeyLocationDetails encryptionKeyLocationDetails,
+ DatabaseStorageSizeDetails storageSizeDetails,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ DataSafeRegistrationRequestDetails dataSafeRegistrationDetails) {
+ super();
+ this.sourceDatabaseId = sourceDatabaseId;
+ this.isThinClone = isThinClone;
+ this.sourceTdePassword = sourceTdePassword;
+ this.sourceAdminPassword = sourceAdminPassword;
+ this.sourceEncryptionKeyLocationDetails = sourceEncryptionKeyLocationDetails;
+ this.tdeWalletPassword = tdeWalletPassword;
+ this.dbBackupConfig = dbBackupConfig;
+ this.adminPassword = adminPassword;
+ this.dbUniqueName = dbUniqueName;
+ this.dbName = dbName;
+ this.characterSet = characterSet;
+ this.ncharacterSet = ncharacterSet;
+ this.sidPrefix = sidPrefix;
+ this.keyStoreId = keyStoreId;
+ this.encryptionKeyLocationDetails = encryptionKeyLocationDetails;
+ this.storageSizeDetails = storageSizeDetails;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.dataSafeRegistrationDetails = dataSafeRegistrationDetails;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /**
+ * The source database
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceDatabaseId")
+ private String sourceDatabaseId;
+
+ /**
+ * The source database
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ *
+ * @param sourceDatabaseId the value to set
+ * @return this builder
+ */
+ public Builder sourceDatabaseId(String sourceDatabaseId) {
+ this.sourceDatabaseId = sourceDatabaseId;
+ this.__explicitlySet__.add("sourceDatabaseId");
+ return this;
+ }
+ /** Specifies whether thick or thin database cloning is to be performed. */
+ @com.fasterxml.jackson.annotation.JsonProperty("isThinClone")
+ private Boolean isThinClone;
+
+ /**
+ * Specifies whether thick or thin database cloning is to be performed.
+ *
+ * @param isThinClone the value to set
+ * @return this builder
+ */
+ public Builder isThinClone(Boolean isThinClone) {
+ this.isThinClone = isThinClone;
+ this.__explicitlySet__.add("isThinClone");
+ return this;
+ }
+ /** The password to open the TDE wallet. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceTdePassword")
+ private char[] sourceTdePassword;
+
+ /**
+ * The password to open the TDE wallet.
+ *
+ * @param sourceTdePassword the value to set
+ * @return this builder
+ */
+ public Builder sourceTdePassword(char[] sourceTdePassword) {
+ this.sourceTdePassword = sourceTdePassword;
+ this.__explicitlySet__.add("sourceTdePassword");
+ return this;
+ }
+
+ public Builder sourceTdePassword(String sourceTdePassword) {
+ this.sourceTdePassword =
+ sourceTdePassword != null ? sourceTdePassword.toCharArray() : null;
+ this.__explicitlySet__.add("sourceTdePassword");
+ return this;
+ }
+ /** The source database's password for SYS, SYSTEM. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceAdminPassword")
+ private char[] sourceAdminPassword;
+
+ /**
+ * The source database's password for SYS, SYSTEM.
+ *
+ * @param sourceAdminPassword the value to set
+ * @return this builder
+ */
+ public Builder sourceAdminPassword(char[] sourceAdminPassword) {
+ this.sourceAdminPassword = sourceAdminPassword;
+ this.__explicitlySet__.add("sourceAdminPassword");
+ return this;
+ }
+
+ public Builder sourceAdminPassword(String sourceAdminPassword) {
+ this.sourceAdminPassword =
+ sourceAdminPassword != null ? sourceAdminPassword.toCharArray() : null;
+ this.__explicitlySet__.add("sourceAdminPassword");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceEncryptionKeyLocationDetails")
+ private EncryptionKeyLocationDetails sourceEncryptionKeyLocationDetails;
+
+ public Builder sourceEncryptionKeyLocationDetails(
+ EncryptionKeyLocationDetails sourceEncryptionKeyLocationDetails) {
+ this.sourceEncryptionKeyLocationDetails = sourceEncryptionKeyLocationDetails;
+ this.__explicitlySet__.add("sourceEncryptionKeyLocationDetails");
+ return this;
+ }
+ /** The password for the target Database TDE wallet. */
+ @com.fasterxml.jackson.annotation.JsonProperty("tdeWalletPassword")
+ private char[] tdeWalletPassword;
+
+ /**
+ * The password for the target Database TDE wallet.
+ *
+ * @param tdeWalletPassword the value to set
+ * @return this builder
+ */
+ public Builder tdeWalletPassword(char[] tdeWalletPassword) {
+ this.tdeWalletPassword = tdeWalletPassword;
+ this.__explicitlySet__.add("tdeWalletPassword");
+ return this;
+ }
+
+ public Builder tdeWalletPassword(String tdeWalletPassword) {
+ this.tdeWalletPassword =
+ tdeWalletPassword != null ? tdeWalletPassword.toCharArray() : null;
+ this.__explicitlySet__.add("tdeWalletPassword");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("dbBackupConfig")
+ private DbBackupConfig dbBackupConfig;
+
+ public Builder dbBackupConfig(DbBackupConfig dbBackupConfig) {
+ this.dbBackupConfig = dbBackupConfig;
+ this.__explicitlySet__.add("dbBackupConfig");
+ return this;
+ }
+ /**
+ * A strong password for SYS, SYSTEM, PDB Admin and TDE Wallet. The password must be at
+ * least nine characters and contain at least two uppercase, two lowercase, two numbers, and
+ * two special characters. The special characters must be _, \\#, or -.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("adminPassword")
+ private char[] adminPassword;
+
+ /**
+ * A strong password for SYS, SYSTEM, PDB Admin and TDE Wallet. The password must be at
+ * least nine characters and contain at least two uppercase, two lowercase, two numbers, and
+ * two special characters. The special characters must be _, \\#, or -.
+ *
+ * @param adminPassword the value to set
+ * @return this builder
+ */
+ public Builder adminPassword(char[] adminPassword) {
+ this.adminPassword = adminPassword;
+ this.__explicitlySet__.add("adminPassword");
+ return this;
+ }
+
+ public Builder adminPassword(String adminPassword) {
+ this.adminPassword = adminPassword != null ? adminPassword.toCharArray() : null;
+ this.__explicitlySet__.add("adminPassword");
+ return this;
+ }
+ /** The {@code DB_UNIQUE_NAME} for the new Oracle Database. */
+ @com.fasterxml.jackson.annotation.JsonProperty("dbUniqueName")
+ private String dbUniqueName;
+
+ /**
+ * The {@code DB_UNIQUE_NAME} for the new Oracle Database.
+ *
+ * @param dbUniqueName the value to set
+ * @return this builder
+ */
+ public Builder dbUniqueName(String dbUniqueName) {
+ this.dbUniqueName = dbUniqueName;
+ this.__explicitlySet__.add("dbUniqueName");
+ return this;
+ }
+ /**
+ * The display name of the database to be created from the snapshot/database. It must begin
+ * with an alphabetic character and can contain a maximum of eight alphanumeric characters.
+ * Special characters are not permitted.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("dbName")
+ private String dbName;
+
+ /**
+ * The display name of the database to be created from the snapshot/database. It must begin
+ * with an alphabetic character and can contain a maximum of eight alphanumeric characters.
+ * Special characters are not permitted.
+ *
+ * @param dbName the value to set
+ * @return this builder
+ */
+ public Builder dbName(String dbName) {
+ this.dbName = dbName;
+ this.__explicitlySet__.add("dbName");
+ return this;
+ }
+ /**
+ * The character set for the database. The default is AL32UTF8. Allowed values are:
+ * AL32UTF8, AR8ADOS710, AR8ADOS720, AR8APTEC715, AR8ARABICMACS, AR8ASMO8X, AR8ISO8859P6,
+ * AR8MSWIN1256, AR8MUSSAD768, AR8NAFITHA711, AR8NAFITHA721, AR8SAKHR706, AR8SAKHR707,
+ * AZ8ISO8859P9E, BG8MSWIN, BG8PC437S, BLT8CP921, BLT8ISO8859P13, BLT8MSWIN1257, BLT8PC775,
+ * BN8BSCII, CDN8PC863, CEL8ISO8859P14, CL8ISO8859P5, CL8ISOIR111, CL8KOI8R, CL8KOI8U,
+ * CL8MACCYRILLICS, CL8MSWIN1251, EE8ISO8859P2, EE8MACCES, EE8MACCROATIANS, EE8MSWIN1250,
+ * EE8PC852, EL8DEC, EL8ISO8859P7, EL8MACGREEKS, EL8MSWIN1253, EL8PC437S, EL8PC851,
+ * EL8PC869, ET8MSWIN923, HU8ABMOD, HU8CWI2, IN8ISCII, IS8PC861, IW8ISO8859P8,
+ * IW8MACHEBREWS, IW8MSWIN1255, IW8PC1507, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE,
+ * JA16VMS, KO16KSC5601, KO16KSCCS, KO16MSWIN949, LA8ISO6937, LA8PASSPORT, LT8MSWIN921,
+ * LT8PC772, LT8PC774, LV8PC1117, LV8PC8LR, LV8RST104090, N8PC865, NE8ISO8859P10,
+ * NEE8ISO8859P4, RU8BESTA, RU8PC855, RU8PC866, SE8ISO8859P3, TH8MACTHAIS, TH8TISASCII,
+ * TR8DEC, TR8MACTURKISHS, TR8MSWIN1254, TR8PC857, US7ASCII, US8PC437, UTF8, VN8MSWIN1258,
+ * VN8VN3, WE8DEC, WE8DG, WE8ISO8859P1, WE8ISO8859P15, WE8ISO8859P9, WE8MACROMAN8S,
+ * WE8MSWIN1252, WE8NCR4970, WE8NEXTSTEP, WE8PC850, WE8PC858, WE8PC860, WE8ROMAN8,
+ * ZHS16CGB231280, ZHS16GBK, ZHT16BIG5, ZHT16CCDC, ZHT16DBT, ZHT16HKSCS, ZHT16MSWIN950,
+ * ZHT32EUC, ZHT32SOPS, ZHT32TRIS
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("characterSet")
+ private String characterSet;
+
+ /**
+ * The character set for the database. The default is AL32UTF8. Allowed values are:
+ * AL32UTF8, AR8ADOS710, AR8ADOS720, AR8APTEC715, AR8ARABICMACS, AR8ASMO8X, AR8ISO8859P6,
+ * AR8MSWIN1256, AR8MUSSAD768, AR8NAFITHA711, AR8NAFITHA721, AR8SAKHR706, AR8SAKHR707,
+ * AZ8ISO8859P9E, BG8MSWIN, BG8PC437S, BLT8CP921, BLT8ISO8859P13, BLT8MSWIN1257, BLT8PC775,
+ * BN8BSCII, CDN8PC863, CEL8ISO8859P14, CL8ISO8859P5, CL8ISOIR111, CL8KOI8R, CL8KOI8U,
+ * CL8MACCYRILLICS, CL8MSWIN1251, EE8ISO8859P2, EE8MACCES, EE8MACCROATIANS, EE8MSWIN1250,
+ * EE8PC852, EL8DEC, EL8ISO8859P7, EL8MACGREEKS, EL8MSWIN1253, EL8PC437S, EL8PC851,
+ * EL8PC869, ET8MSWIN923, HU8ABMOD, HU8CWI2, IN8ISCII, IS8PC861, IW8ISO8859P8,
+ * IW8MACHEBREWS, IW8MSWIN1255, IW8PC1507, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE,
+ * JA16VMS, KO16KSC5601, KO16KSCCS, KO16MSWIN949, LA8ISO6937, LA8PASSPORT, LT8MSWIN921,
+ * LT8PC772, LT8PC774, LV8PC1117, LV8PC8LR, LV8RST104090, N8PC865, NE8ISO8859P10,
+ * NEE8ISO8859P4, RU8BESTA, RU8PC855, RU8PC866, SE8ISO8859P3, TH8MACTHAIS, TH8TISASCII,
+ * TR8DEC, TR8MACTURKISHS, TR8MSWIN1254, TR8PC857, US7ASCII, US8PC437, UTF8, VN8MSWIN1258,
+ * VN8VN3, WE8DEC, WE8DG, WE8ISO8859P1, WE8ISO8859P15, WE8ISO8859P9, WE8MACROMAN8S,
+ * WE8MSWIN1252, WE8NCR4970, WE8NEXTSTEP, WE8PC850, WE8PC858, WE8PC860, WE8ROMAN8,
+ * ZHS16CGB231280, ZHS16GBK, ZHT16BIG5, ZHT16CCDC, ZHT16DBT, ZHT16HKSCS, ZHT16MSWIN950,
+ * ZHT32EUC, ZHT32SOPS, ZHT32TRIS
+ *
+ * @param characterSet the value to set
+ * @return this builder
+ */
+ public Builder characterSet(String characterSet) {
+ this.characterSet = characterSet;
+ this.__explicitlySet__.add("characterSet");
+ return this;
+ }
+ /**
+ * The national character set for the database. The default is AL16UTF16. Allowed values
+ * are: AL16UTF16 or UTF8.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("ncharacterSet")
+ private String ncharacterSet;
+
+ /**
+ * The national character set for the database. The default is AL16UTF16. Allowed values
+ * are: AL16UTF16 or UTF8.
+ *
+ * @param ncharacterSet the value to set
+ * @return this builder
+ */
+ public Builder ncharacterSet(String ncharacterSet) {
+ this.ncharacterSet = ncharacterSet;
+ this.__explicitlySet__.add("ncharacterSet");
+ return this;
+ }
+ /** Specifies a prefix for the {@code Oracle SID} of the database to be created. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sidPrefix")
+ private String sidPrefix;
+
+ /**
+ * Specifies a prefix for the {@code Oracle SID} of the database to be created.
+ *
+ * @param sidPrefix the value to set
+ * @return this builder
+ */
+ public Builder sidPrefix(String sidPrefix) {
+ this.sidPrefix = sidPrefix;
+ this.__explicitlySet__.add("sidPrefix");
+ return this;
+ }
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * key store of Oracle Vault.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("keyStoreId")
+ private String keyStoreId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * key store of Oracle Vault.
+ *
+ * @param keyStoreId the value to set
+ * @return this builder
+ */
+ public Builder keyStoreId(String keyStoreId) {
+ this.keyStoreId = keyStoreId;
+ this.__explicitlySet__.add("keyStoreId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("encryptionKeyLocationDetails")
+ private EncryptionKeyLocationDetails encryptionKeyLocationDetails;
+
+ public Builder encryptionKeyLocationDetails(
+ EncryptionKeyLocationDetails encryptionKeyLocationDetails) {
+ this.encryptionKeyLocationDetails = encryptionKeyLocationDetails;
+ this.__explicitlySet__.add("encryptionKeyLocationDetails");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("storageSizeDetails")
+ private DatabaseStorageSizeDetails storageSizeDetails;
+
+ public Builder storageSizeDetails(DatabaseStorageSizeDetails storageSizeDetails) {
+ this.storageSizeDetails = storageSizeDetails;
+ this.__explicitlySet__.add("storageSizeDetails");
+ 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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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("dataSafeRegistrationDetails")
+ private DataSafeRegistrationRequestDetails dataSafeRegistrationDetails;
+
+ public Builder dataSafeRegistrationDetails(
+ DataSafeRegistrationRequestDetails dataSafeRegistrationDetails) {
+ this.dataSafeRegistrationDetails = dataSafeRegistrationDetails;
+ this.__explicitlySet__.add("dataSafeRegistrationDetails");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public CloneDatabaseDetails build() {
+ CloneDatabaseDetails model =
+ new CloneDatabaseDetails(
+ this.sourceDatabaseId,
+ this.isThinClone,
+ this.sourceTdePassword,
+ this.sourceAdminPassword,
+ this.sourceEncryptionKeyLocationDetails,
+ this.tdeWalletPassword,
+ this.dbBackupConfig,
+ this.adminPassword,
+ this.dbUniqueName,
+ this.dbName,
+ this.characterSet,
+ this.ncharacterSet,
+ this.sidPrefix,
+ this.keyStoreId,
+ this.encryptionKeyLocationDetails,
+ this.storageSizeDetails,
+ this.freeformTags,
+ this.definedTags,
+ this.dataSafeRegistrationDetails);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CloneDatabaseDetails model) {
+ if (model.wasPropertyExplicitlySet("sourceDatabaseId")) {
+ this.sourceDatabaseId(model.getSourceDatabaseId());
+ }
+ if (model.wasPropertyExplicitlySet("isThinClone")) {
+ this.isThinClone(model.getIsThinClone());
+ }
+ if (model.wasPropertyExplicitlySet("sourceTdePassword")) {
+ this.sourceTdePassword(model.getSourceTdePassword());
+ }
+ if (model.wasPropertyExplicitlySet("sourceAdminPassword")) {
+ this.sourceAdminPassword(model.getSourceAdminPassword());
+ }
+ if (model.wasPropertyExplicitlySet("sourceEncryptionKeyLocationDetails")) {
+ this.sourceEncryptionKeyLocationDetails(
+ model.getSourceEncryptionKeyLocationDetails());
+ }
+ if (model.wasPropertyExplicitlySet("tdeWalletPassword")) {
+ this.tdeWalletPassword(model.getTdeWalletPassword());
+ }
+ if (model.wasPropertyExplicitlySet("dbBackupConfig")) {
+ this.dbBackupConfig(model.getDbBackupConfig());
+ }
+ if (model.wasPropertyExplicitlySet("adminPassword")) {
+ this.adminPassword(model.getAdminPassword());
+ }
+ if (model.wasPropertyExplicitlySet("dbUniqueName")) {
+ this.dbUniqueName(model.getDbUniqueName());
+ }
+ if (model.wasPropertyExplicitlySet("dbName")) {
+ this.dbName(model.getDbName());
+ }
+ if (model.wasPropertyExplicitlySet("characterSet")) {
+ this.characterSet(model.getCharacterSet());
+ }
+ if (model.wasPropertyExplicitlySet("ncharacterSet")) {
+ this.ncharacterSet(model.getNcharacterSet());
+ }
+ if (model.wasPropertyExplicitlySet("sidPrefix")) {
+ this.sidPrefix(model.getSidPrefix());
+ }
+ if (model.wasPropertyExplicitlySet("keyStoreId")) {
+ this.keyStoreId(model.getKeyStoreId());
+ }
+ if (model.wasPropertyExplicitlySet("encryptionKeyLocationDetails")) {
+ this.encryptionKeyLocationDetails(model.getEncryptionKeyLocationDetails());
+ }
+ if (model.wasPropertyExplicitlySet("storageSizeDetails")) {
+ this.storageSizeDetails(model.getStorageSizeDetails());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ if (model.wasPropertyExplicitlySet("dataSafeRegistrationDetails")) {
+ this.dataSafeRegistrationDetails(model.getDataSafeRegistrationDetails());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /**
+ * The source database
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceDatabaseId")
+ private final String sourceDatabaseId;
+
+ /**
+ * The source database
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ *
+ * @return the value
+ */
+ public String getSourceDatabaseId() {
+ return sourceDatabaseId;
+ }
+
+ /** Specifies whether thick or thin database cloning is to be performed. */
+ @com.fasterxml.jackson.annotation.JsonProperty("isThinClone")
+ private final Boolean isThinClone;
+
+ /**
+ * Specifies whether thick or thin database cloning is to be performed.
+ *
+ * @return the value
+ */
+ public Boolean getIsThinClone() {
+ return isThinClone;
+ }
+
+ /** The password to open the TDE wallet. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceTdePassword")
+ private final char[] sourceTdePassword;
+
+ /**
+ * The password to open the TDE wallet.
+ *
+ * @return the value
+ * @deprecated Use getSourceTdePassword__AsCharArray() instead.
+ */
+ @Deprecated
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public String getSourceTdePassword() {
+ return sourceTdePassword != null ? new String(sourceTdePassword) : null;
+ }
+
+ /**
+ * The password to open the TDE wallet.
+ *
+ * @return the value
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceTdePassword")
+ public char[] getSourceTdePassword__AsCharArray() {
+ return sourceTdePassword;
+ }
+
+ /** The source database's password for SYS, SYSTEM. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceAdminPassword")
+ private final char[] sourceAdminPassword;
+
+ /**
+ * The source database's password for SYS, SYSTEM.
+ *
+ * @return the value
+ * @deprecated Use getSourceAdminPassword__AsCharArray() instead.
+ */
+ @Deprecated
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public String getSourceAdminPassword() {
+ return sourceAdminPassword != null ? new String(sourceAdminPassword) : null;
+ }
+
+ /**
+ * The source database's password for SYS, SYSTEM.
+ *
+ * @return the value
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceAdminPassword")
+ public char[] getSourceAdminPassword__AsCharArray() {
+ return sourceAdminPassword;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceEncryptionKeyLocationDetails")
+ private final EncryptionKeyLocationDetails sourceEncryptionKeyLocationDetails;
+
+ public EncryptionKeyLocationDetails getSourceEncryptionKeyLocationDetails() {
+ return sourceEncryptionKeyLocationDetails;
+ }
+
+ /** The password for the target Database TDE wallet. */
+ @com.fasterxml.jackson.annotation.JsonProperty("tdeWalletPassword")
+ private final char[] tdeWalletPassword;
+
+ /**
+ * The password for the target Database TDE wallet.
+ *
+ * @return the value
+ * @deprecated Use getTdeWalletPassword__AsCharArray() instead.
+ */
+ @Deprecated
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public String getTdeWalletPassword() {
+ return tdeWalletPassword != null ? new String(tdeWalletPassword) : null;
+ }
+
+ /**
+ * The password for the target Database TDE wallet.
+ *
+ * @return the value
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("tdeWalletPassword")
+ public char[] getTdeWalletPassword__AsCharArray() {
+ return tdeWalletPassword;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("dbBackupConfig")
+ private final DbBackupConfig dbBackupConfig;
+
+ public DbBackupConfig getDbBackupConfig() {
+ return dbBackupConfig;
+ }
+
+ /**
+ * A strong password for SYS, SYSTEM, PDB Admin and TDE Wallet. The password must be at least
+ * nine characters and contain at least two uppercase, two lowercase, two numbers, and two
+ * special characters. The special characters must be _, \\#, or -.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("adminPassword")
+ private final char[] adminPassword;
+
+ /**
+ * A strong password for SYS, SYSTEM, PDB Admin and TDE Wallet. The password must be at least
+ * nine characters and contain at least two uppercase, two lowercase, two numbers, and two
+ * special characters. The special characters must be _, \\#, or -.
+ *
+ * @return the value
+ * @deprecated Use getAdminPassword__AsCharArray() instead.
+ */
+ @Deprecated
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public String getAdminPassword() {
+ return adminPassword != null ? new String(adminPassword) : null;
+ }
+
+ /**
+ * A strong password for SYS, SYSTEM, PDB Admin and TDE Wallet. The password must be at least
+ * nine characters and contain at least two uppercase, two lowercase, two numbers, and two
+ * special characters. The special characters must be _, \\#, or -.
+ *
+ * @return the value
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("adminPassword")
+ public char[] getAdminPassword__AsCharArray() {
+ return adminPassword;
+ }
+
+ /** The {@code DB_UNIQUE_NAME} for the new Oracle Database. */
+ @com.fasterxml.jackson.annotation.JsonProperty("dbUniqueName")
+ private final String dbUniqueName;
+
+ /**
+ * The {@code DB_UNIQUE_NAME} for the new Oracle Database.
+ *
+ * @return the value
+ */
+ public String getDbUniqueName() {
+ return dbUniqueName;
+ }
+
+ /**
+ * The display name of the database to be created from the snapshot/database. It must begin with
+ * an alphabetic character and can contain a maximum of eight alphanumeric characters. Special
+ * characters are not permitted.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("dbName")
+ private final String dbName;
+
+ /**
+ * The display name of the database to be created from the snapshot/database. It must begin with
+ * an alphabetic character and can contain a maximum of eight alphanumeric characters. Special
+ * characters are not permitted.
+ *
+ * @return the value
+ */
+ public String getDbName() {
+ return dbName;
+ }
+
+ /**
+ * The character set for the database. The default is AL32UTF8. Allowed values are: AL32UTF8,
+ * AR8ADOS710, AR8ADOS720, AR8APTEC715, AR8ARABICMACS, AR8ASMO8X, AR8ISO8859P6, AR8MSWIN1256,
+ * AR8MUSSAD768, AR8NAFITHA711, AR8NAFITHA721, AR8SAKHR706, AR8SAKHR707, AZ8ISO8859P9E,
+ * BG8MSWIN, BG8PC437S, BLT8CP921, BLT8ISO8859P13, BLT8MSWIN1257, BLT8PC775, BN8BSCII,
+ * CDN8PC863, CEL8ISO8859P14, CL8ISO8859P5, CL8ISOIR111, CL8KOI8R, CL8KOI8U, CL8MACCYRILLICS,
+ * CL8MSWIN1251, EE8ISO8859P2, EE8MACCES, EE8MACCROATIANS, EE8MSWIN1250, EE8PC852, EL8DEC,
+ * EL8ISO8859P7, EL8MACGREEKS, EL8MSWIN1253, EL8PC437S, EL8PC851, EL8PC869, ET8MSWIN923,
+ * HU8ABMOD, HU8CWI2, IN8ISCII, IS8PC861, IW8ISO8859P8, IW8MACHEBREWS, IW8MSWIN1255, IW8PC1507,
+ * JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE, JA16VMS, KO16KSC5601, KO16KSCCS,
+ * KO16MSWIN949, LA8ISO6937, LA8PASSPORT, LT8MSWIN921, LT8PC772, LT8PC774, LV8PC1117, LV8PC8LR,
+ * LV8RST104090, N8PC865, NE8ISO8859P10, NEE8ISO8859P4, RU8BESTA, RU8PC855, RU8PC866,
+ * SE8ISO8859P3, TH8MACTHAIS, TH8TISASCII, TR8DEC, TR8MACTURKISHS, TR8MSWIN1254, TR8PC857,
+ * US7ASCII, US8PC437, UTF8, VN8MSWIN1258, VN8VN3, WE8DEC, WE8DG, WE8ISO8859P1, WE8ISO8859P15,
+ * WE8ISO8859P9, WE8MACROMAN8S, WE8MSWIN1252, WE8NCR4970, WE8NEXTSTEP, WE8PC850, WE8PC858,
+ * WE8PC860, WE8ROMAN8, ZHS16CGB231280, ZHS16GBK, ZHT16BIG5, ZHT16CCDC, ZHT16DBT, ZHT16HKSCS,
+ * ZHT16MSWIN950, ZHT32EUC, ZHT32SOPS, ZHT32TRIS
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("characterSet")
+ private final String characterSet;
+
+ /**
+ * The character set for the database. The default is AL32UTF8. Allowed values are: AL32UTF8,
+ * AR8ADOS710, AR8ADOS720, AR8APTEC715, AR8ARABICMACS, AR8ASMO8X, AR8ISO8859P6, AR8MSWIN1256,
+ * AR8MUSSAD768, AR8NAFITHA711, AR8NAFITHA721, AR8SAKHR706, AR8SAKHR707, AZ8ISO8859P9E,
+ * BG8MSWIN, BG8PC437S, BLT8CP921, BLT8ISO8859P13, BLT8MSWIN1257, BLT8PC775, BN8BSCII,
+ * CDN8PC863, CEL8ISO8859P14, CL8ISO8859P5, CL8ISOIR111, CL8KOI8R, CL8KOI8U, CL8MACCYRILLICS,
+ * CL8MSWIN1251, EE8ISO8859P2, EE8MACCES, EE8MACCROATIANS, EE8MSWIN1250, EE8PC852, EL8DEC,
+ * EL8ISO8859P7, EL8MACGREEKS, EL8MSWIN1253, EL8PC437S, EL8PC851, EL8PC869, ET8MSWIN923,
+ * HU8ABMOD, HU8CWI2, IN8ISCII, IS8PC861, IW8ISO8859P8, IW8MACHEBREWS, IW8MSWIN1255, IW8PC1507,
+ * JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE, JA16VMS, KO16KSC5601, KO16KSCCS,
+ * KO16MSWIN949, LA8ISO6937, LA8PASSPORT, LT8MSWIN921, LT8PC772, LT8PC774, LV8PC1117, LV8PC8LR,
+ * LV8RST104090, N8PC865, NE8ISO8859P10, NEE8ISO8859P4, RU8BESTA, RU8PC855, RU8PC866,
+ * SE8ISO8859P3, TH8MACTHAIS, TH8TISASCII, TR8DEC, TR8MACTURKISHS, TR8MSWIN1254, TR8PC857,
+ * US7ASCII, US8PC437, UTF8, VN8MSWIN1258, VN8VN3, WE8DEC, WE8DG, WE8ISO8859P1, WE8ISO8859P15,
+ * WE8ISO8859P9, WE8MACROMAN8S, WE8MSWIN1252, WE8NCR4970, WE8NEXTSTEP, WE8PC850, WE8PC858,
+ * WE8PC860, WE8ROMAN8, ZHS16CGB231280, ZHS16GBK, ZHT16BIG5, ZHT16CCDC, ZHT16DBT, ZHT16HKSCS,
+ * ZHT16MSWIN950, ZHT32EUC, ZHT32SOPS, ZHT32TRIS
+ *
+ * @return the value
+ */
+ public String getCharacterSet() {
+ return characterSet;
+ }
+
+ /**
+ * The national character set for the database. The default is AL16UTF16. Allowed values are:
+ * AL16UTF16 or UTF8.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("ncharacterSet")
+ private final String ncharacterSet;
+
+ /**
+ * The national character set for the database. The default is AL16UTF16. Allowed values are:
+ * AL16UTF16 or UTF8.
+ *
+ * @return the value
+ */
+ public String getNcharacterSet() {
+ return ncharacterSet;
+ }
+
+ /** Specifies a prefix for the {@code Oracle SID} of the database to be created. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sidPrefix")
+ private final String sidPrefix;
+
+ /**
+ * Specifies a prefix for the {@code Oracle SID} of the database to be created.
+ *
+ * @return the value
+ */
+ public String getSidPrefix() {
+ return sidPrefix;
+ }
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the key
+ * store of Oracle Vault.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("keyStoreId")
+ private final String keyStoreId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the key
+ * store of Oracle Vault.
+ *
+ * @return the value
+ */
+ public String getKeyStoreId() {
+ return keyStoreId;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("encryptionKeyLocationDetails")
+ private final EncryptionKeyLocationDetails encryptionKeyLocationDetails;
+
+ public EncryptionKeyLocationDetails getEncryptionKeyLocationDetails() {
+ return encryptionKeyLocationDetails;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("storageSizeDetails")
+ private final DatabaseStorageSizeDetails storageSizeDetails;
+
+ public DatabaseStorageSizeDetails getStorageSizeDetails() {
+ return storageSizeDetails;
+ }
+
+ /**
+ * 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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("dataSafeRegistrationDetails")
+ private final DataSafeRegistrationRequestDetails dataSafeRegistrationDetails;
+
+ public DataSafeRegistrationRequestDetails getDataSafeRegistrationDetails() {
+ return dataSafeRegistrationDetails;
+ }
+
+ @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("CloneDatabaseDetails(");
+ sb.append("super=").append(super.toString());
+ sb.append("sourceDatabaseId=").append(String.valueOf(this.sourceDatabaseId));
+ sb.append(", isThinClone=").append(String.valueOf(this.isThinClone));
+ sb.append(", sourceTdePassword=").append("");
+ sb.append(", sourceAdminPassword=").append("");
+ sb.append(", sourceEncryptionKeyLocationDetails=")
+ .append(String.valueOf(this.sourceEncryptionKeyLocationDetails));
+ sb.append(", tdeWalletPassword=").append("");
+ sb.append(", dbBackupConfig=").append(String.valueOf(this.dbBackupConfig));
+ sb.append(", adminPassword=").append("");
+ sb.append(", dbUniqueName=").append(String.valueOf(this.dbUniqueName));
+ sb.append(", dbName=").append(String.valueOf(this.dbName));
+ sb.append(", characterSet=").append(String.valueOf(this.characterSet));
+ sb.append(", ncharacterSet=").append(String.valueOf(this.ncharacterSet));
+ sb.append(", sidPrefix=").append(String.valueOf(this.sidPrefix));
+ sb.append(", keyStoreId=").append(String.valueOf(this.keyStoreId));
+ sb.append(", encryptionKeyLocationDetails=")
+ .append(String.valueOf(this.encryptionKeyLocationDetails));
+ sb.append(", storageSizeDetails=").append(String.valueOf(this.storageSizeDetails));
+ sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
+ sb.append(", definedTags=").append(String.valueOf(this.definedTags));
+ sb.append(", dataSafeRegistrationDetails=")
+ .append(String.valueOf(this.dataSafeRegistrationDetails));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CloneDatabaseDetails)) {
+ return false;
+ }
+
+ CloneDatabaseDetails other = (CloneDatabaseDetails) o;
+ return java.util.Objects.equals(this.sourceDatabaseId, other.sourceDatabaseId)
+ && java.util.Objects.equals(this.isThinClone, other.isThinClone)
+ && java.util.Objects.equals(this.sourceTdePassword, other.sourceTdePassword)
+ && java.util.Objects.equals(this.sourceAdminPassword, other.sourceAdminPassword)
+ && java.util.Objects.equals(
+ this.sourceEncryptionKeyLocationDetails,
+ other.sourceEncryptionKeyLocationDetails)
+ && java.util.Objects.equals(this.tdeWalletPassword, other.tdeWalletPassword)
+ && java.util.Objects.equals(this.dbBackupConfig, other.dbBackupConfig)
+ && java.util.Objects.equals(this.adminPassword, other.adminPassword)
+ && java.util.Objects.equals(this.dbUniqueName, other.dbUniqueName)
+ && java.util.Objects.equals(this.dbName, other.dbName)
+ && java.util.Objects.equals(this.characterSet, other.characterSet)
+ && java.util.Objects.equals(this.ncharacterSet, other.ncharacterSet)
+ && java.util.Objects.equals(this.sidPrefix, other.sidPrefix)
+ && java.util.Objects.equals(this.keyStoreId, other.keyStoreId)
+ && java.util.Objects.equals(
+ this.encryptionKeyLocationDetails, other.encryptionKeyLocationDetails)
+ && java.util.Objects.equals(this.storageSizeDetails, other.storageSizeDetails)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && java.util.Objects.equals(
+ this.dataSafeRegistrationDetails, other.dataSafeRegistrationDetails)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result =
+ (result * PRIME)
+ + (this.sourceDatabaseId == null ? 43 : this.sourceDatabaseId.hashCode());
+ result = (result * PRIME) + (this.isThinClone == null ? 43 : this.isThinClone.hashCode());
+ result =
+ (result * PRIME)
+ + (this.sourceTdePassword == null ? 43 : this.sourceTdePassword.hashCode());
+ result =
+ (result * PRIME)
+ + (this.sourceAdminPassword == null
+ ? 43
+ : this.sourceAdminPassword.hashCode());
+ result =
+ (result * PRIME)
+ + (this.sourceEncryptionKeyLocationDetails == null
+ ? 43
+ : this.sourceEncryptionKeyLocationDetails.hashCode());
+ result =
+ (result * PRIME)
+ + (this.tdeWalletPassword == null ? 43 : this.tdeWalletPassword.hashCode());
+ result =
+ (result * PRIME)
+ + (this.dbBackupConfig == null ? 43 : this.dbBackupConfig.hashCode());
+ result =
+ (result * PRIME)
+ + (this.adminPassword == null ? 43 : this.adminPassword.hashCode());
+ result = (result * PRIME) + (this.dbUniqueName == null ? 43 : this.dbUniqueName.hashCode());
+ result = (result * PRIME) + (this.dbName == null ? 43 : this.dbName.hashCode());
+ result = (result * PRIME) + (this.characterSet == null ? 43 : this.characterSet.hashCode());
+ result =
+ (result * PRIME)
+ + (this.ncharacterSet == null ? 43 : this.ncharacterSet.hashCode());
+ result = (result * PRIME) + (this.sidPrefix == null ? 43 : this.sidPrefix.hashCode());
+ result = (result * PRIME) + (this.keyStoreId == null ? 43 : this.keyStoreId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.encryptionKeyLocationDetails == null
+ ? 43
+ : this.encryptionKeyLocationDetails.hashCode());
+ result =
+ (result * PRIME)
+ + (this.storageSizeDetails == null
+ ? 43
+ : this.storageSizeDetails.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.dataSafeRegistrationDetails == null
+ ? 43
+ : this.dataSafeRegistrationDetails.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateCloneDatabaseFromDatabase.java b/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateCloneDatabaseFromDatabase.java
new file mode 100644
index 00000000000..3392fdff115
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateCloneDatabaseFromDatabase.java
@@ -0,0 +1,183 @@
+/**
+ * Copyright (c) 2016, 2026, 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;
+
+/**
+ * Details for creating a database by cloning from another database.
+ *
+ * *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: 20160918")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = CreateCloneDatabaseFromDatabase.Builder.class)
+@com.fasterxml.jackson.annotation.JsonTypeInfo(
+ use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME,
+ include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,
+ property = "source")
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CreateCloneDatabaseFromDatabase extends CreateDatabaseBase {
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ @com.fasterxml.jackson.annotation.JsonProperty("dbHomeId")
+ private String dbHomeId;
+
+ public Builder dbHomeId(String dbHomeId) {
+ this.dbHomeId = dbHomeId;
+ this.__explicitlySet__.add("dbHomeId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("dbVersion")
+ private String dbVersion;
+
+ public Builder dbVersion(String dbVersion) {
+ this.dbVersion = dbVersion;
+ this.__explicitlySet__.add("dbVersion");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("kmsKeyId")
+ private String kmsKeyId;
+
+ public Builder kmsKeyId(String kmsKeyId) {
+ this.kmsKeyId = kmsKeyId;
+ this.__explicitlySet__.add("kmsKeyId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("kmsKeyVersionId")
+ private String kmsKeyVersionId;
+
+ public Builder kmsKeyVersionId(String kmsKeyVersionId) {
+ this.kmsKeyVersionId = kmsKeyVersionId;
+ this.__explicitlySet__.add("kmsKeyVersionId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("database")
+ private CloneDatabaseDetails database;
+
+ public Builder database(CloneDatabaseDetails database) {
+ this.database = database;
+ this.__explicitlySet__.add("database");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public CreateCloneDatabaseFromDatabase build() {
+ CreateCloneDatabaseFromDatabase model =
+ new CreateCloneDatabaseFromDatabase(
+ this.dbHomeId,
+ this.dbVersion,
+ this.kmsKeyId,
+ this.kmsKeyVersionId,
+ this.database);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CreateCloneDatabaseFromDatabase model) {
+ if (model.wasPropertyExplicitlySet("dbHomeId")) {
+ this.dbHomeId(model.getDbHomeId());
+ }
+ if (model.wasPropertyExplicitlySet("dbVersion")) {
+ this.dbVersion(model.getDbVersion());
+ }
+ if (model.wasPropertyExplicitlySet("kmsKeyId")) {
+ this.kmsKeyId(model.getKmsKeyId());
+ }
+ if (model.wasPropertyExplicitlySet("kmsKeyVersionId")) {
+ this.kmsKeyVersionId(model.getKmsKeyVersionId());
+ }
+ if (model.wasPropertyExplicitlySet("database")) {
+ this.database(model.getDatabase());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ @Deprecated
+ public CreateCloneDatabaseFromDatabase(
+ String dbHomeId,
+ String dbVersion,
+ String kmsKeyId,
+ String kmsKeyVersionId,
+ CloneDatabaseDetails database) {
+ super(dbHomeId, dbVersion, kmsKeyId, kmsKeyVersionId);
+ this.database = database;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("database")
+ private final CloneDatabaseDetails database;
+
+ public CloneDatabaseDetails getDatabase() {
+ return database;
+ }
+
+ @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("CreateCloneDatabaseFromDatabase(");
+ sb.append("super=").append(super.toString(includeByteArrayContents));
+ sb.append(", database=").append(String.valueOf(this.database));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CreateCloneDatabaseFromDatabase)) {
+ return false;
+ }
+
+ CreateCloneDatabaseFromDatabase other = (CreateCloneDatabaseFromDatabase) o;
+ return java.util.Objects.equals(this.database, other.database) && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result = (result * PRIME) + (this.database == null ? 43 : this.database.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateDatabaseBase.java b/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateDatabaseBase.java
index 7567f9f1bc4..c773ad3c48e 100644
--- a/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateDatabaseBase.java
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateDatabaseBase.java
@@ -31,9 +31,15 @@
@com.fasterxml.jackson.annotation.JsonSubTypes.Type(
value = CreateStandByDatabaseDetails.class,
name = "DATAGUARD"),
+ @com.fasterxml.jackson.annotation.JsonSubTypes.Type(
+ value = CreateCloneDatabaseFromDatabase.class,
+ name = "DB_CLONE"),
@com.fasterxml.jackson.annotation.JsonSubTypes.Type(
value = CreateDatabaseFromDatabase.class,
name = "DATABASE"),
+ @com.fasterxml.jackson.annotation.JsonSubTypes.Type(
+ value = CreateDatabaseFromSnapshot.class,
+ name = "DB_SNAPSHOT"),
@com.fasterxml.jackson.annotation.JsonSubTypes.Type(
value = CreateDatabaseFromBackup.class,
name = "DB_BACKUP")
@@ -195,13 +201,17 @@ public int hashCode() {
/**
* The source of the database: Use {@code NONE} for creating a new database. Use {@code
* DB_BACKUP} for creating a new database by restoring from a backup. Use {@code DATAGUARD} for
- * creating a new STANDBY database for a Data Guard setup.. The default is {@code NONE}.
+ * creating a new STANDBY database for a Data Guard setup.. Use {@code DB_SNAPSHOT} for creating
+ * a new database by cloning from snapshot. Use {@code DB_CLONE} for creating a new database by
+ * cloning from another database. The default is {@code NONE}.
*/
public enum Source implements com.oracle.bmc.http.internal.BmcEnum {
None("NONE"),
DbBackup("DB_BACKUP"),
Database("DATABASE"),
Dataguard("DATAGUARD"),
+ DbSnapshot("DB_SNAPSHOT"),
+ DbClone("DB_CLONE"),
;
private final String value;
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateDatabaseFromSnapshot.java b/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateDatabaseFromSnapshot.java
new file mode 100644
index 00000000000..672a332b2bb
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateDatabaseFromSnapshot.java
@@ -0,0 +1,182 @@
+/**
+ * Copyright (c) 2016, 2026, 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;
+
+/**
+ * Details for creating a database by cloning from a database snapshot. **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: 20160918")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = CreateDatabaseFromSnapshot.Builder.class)
+@com.fasterxml.jackson.annotation.JsonTypeInfo(
+ use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME,
+ include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,
+ property = "source")
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CreateDatabaseFromSnapshot extends CreateDatabaseBase {
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ @com.fasterxml.jackson.annotation.JsonProperty("dbHomeId")
+ private String dbHomeId;
+
+ public Builder dbHomeId(String dbHomeId) {
+ this.dbHomeId = dbHomeId;
+ this.__explicitlySet__.add("dbHomeId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("dbVersion")
+ private String dbVersion;
+
+ public Builder dbVersion(String dbVersion) {
+ this.dbVersion = dbVersion;
+ this.__explicitlySet__.add("dbVersion");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("kmsKeyId")
+ private String kmsKeyId;
+
+ public Builder kmsKeyId(String kmsKeyId) {
+ this.kmsKeyId = kmsKeyId;
+ this.__explicitlySet__.add("kmsKeyId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("kmsKeyVersionId")
+ private String kmsKeyVersionId;
+
+ public Builder kmsKeyVersionId(String kmsKeyVersionId) {
+ this.kmsKeyVersionId = kmsKeyVersionId;
+ this.__explicitlySet__.add("kmsKeyVersionId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("database")
+ private CreateDatabaseFromSnapshotDetails database;
+
+ public Builder database(CreateDatabaseFromSnapshotDetails database) {
+ this.database = database;
+ this.__explicitlySet__.add("database");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public CreateDatabaseFromSnapshot build() {
+ CreateDatabaseFromSnapshot model =
+ new CreateDatabaseFromSnapshot(
+ this.dbHomeId,
+ this.dbVersion,
+ this.kmsKeyId,
+ this.kmsKeyVersionId,
+ this.database);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CreateDatabaseFromSnapshot model) {
+ if (model.wasPropertyExplicitlySet("dbHomeId")) {
+ this.dbHomeId(model.getDbHomeId());
+ }
+ if (model.wasPropertyExplicitlySet("dbVersion")) {
+ this.dbVersion(model.getDbVersion());
+ }
+ if (model.wasPropertyExplicitlySet("kmsKeyId")) {
+ this.kmsKeyId(model.getKmsKeyId());
+ }
+ if (model.wasPropertyExplicitlySet("kmsKeyVersionId")) {
+ this.kmsKeyVersionId(model.getKmsKeyVersionId());
+ }
+ if (model.wasPropertyExplicitlySet("database")) {
+ this.database(model.getDatabase());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ @Deprecated
+ public CreateDatabaseFromSnapshot(
+ String dbHomeId,
+ String dbVersion,
+ String kmsKeyId,
+ String kmsKeyVersionId,
+ CreateDatabaseFromSnapshotDetails database) {
+ super(dbHomeId, dbVersion, kmsKeyId, kmsKeyVersionId);
+ this.database = database;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("database")
+ private final CreateDatabaseFromSnapshotDetails database;
+
+ public CreateDatabaseFromSnapshotDetails getDatabase() {
+ return database;
+ }
+
+ @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("CreateDatabaseFromSnapshot(");
+ sb.append("super=").append(super.toString(includeByteArrayContents));
+ sb.append(", database=").append(String.valueOf(this.database));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CreateDatabaseFromSnapshot)) {
+ return false;
+ }
+
+ CreateDatabaseFromSnapshot other = (CreateDatabaseFromSnapshot) o;
+ return java.util.Objects.equals(this.database, other.database) && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result = (result * PRIME) + (this.database == null ? 43 : this.database.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateDatabaseFromSnapshotDetails.java b/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateDatabaseFromSnapshotDetails.java
new file mode 100644
index 00000000000..d7cd8a5b8ca
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateDatabaseFromSnapshotDetails.java
@@ -0,0 +1,1077 @@
+/**
+ * Copyright (c) 2016, 2026, 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;
+
+/**
+ *
+ * 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 = CreateDatabaseFromSnapshotDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CreateDatabaseFromSnapshotDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ public CreateDatabaseFromSnapshotDetails(
+ String sourceSnapshotId,
+ Boolean isThinClone,
+ String sourceTdePassword,
+ String sourceAdminPassword,
+ EncryptionKeyLocationDetails sourceEncryptionKeyLocationDetails,
+ String tdeWalletPassword,
+ DbBackupConfig dbBackupConfig,
+ String adminPassword,
+ String dbUniqueName,
+ String dbName,
+ String characterSet,
+ String ncharacterSet,
+ String sidPrefix,
+ String keyStoreId,
+ EncryptionKeyLocationDetails encryptionKeyLocationDetails,
+ DatabaseStorageSizeDetails storageSizeDetails,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ DataSafeRegistrationRequestDetails dataSafeRegistrationDetails) {
+ super();
+ this.sourceSnapshotId = sourceSnapshotId;
+ this.isThinClone = isThinClone;
+ this.sourceTdePassword = sourceTdePassword != null ? sourceTdePassword.toCharArray() : null;
+ this.sourceAdminPassword =
+ sourceAdminPassword != null ? sourceAdminPassword.toCharArray() : null;
+ this.sourceEncryptionKeyLocationDetails = sourceEncryptionKeyLocationDetails;
+ this.tdeWalletPassword = tdeWalletPassword != null ? tdeWalletPassword.toCharArray() : null;
+ this.dbBackupConfig = dbBackupConfig;
+ this.adminPassword = adminPassword != null ? adminPassword.toCharArray() : null;
+ this.dbUniqueName = dbUniqueName;
+ this.dbName = dbName;
+ this.characterSet = characterSet;
+ this.ncharacterSet = ncharacterSet;
+ this.sidPrefix = sidPrefix;
+ this.keyStoreId = keyStoreId;
+ this.encryptionKeyLocationDetails = encryptionKeyLocationDetails;
+ this.storageSizeDetails = storageSizeDetails;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.dataSafeRegistrationDetails = dataSafeRegistrationDetails;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "sourceSnapshotId",
+ "isThinClone",
+ "sourceTdePassword",
+ "sourceAdminPassword",
+ "sourceEncryptionKeyLocationDetails",
+ "tdeWalletPassword",
+ "dbBackupConfig",
+ "adminPassword",
+ "dbUniqueName",
+ "dbName",
+ "characterSet",
+ "ncharacterSet",
+ "sidPrefix",
+ "keyStoreId",
+ "encryptionKeyLocationDetails",
+ "storageSizeDetails",
+ "freeformTags",
+ "definedTags",
+ "dataSafeRegistrationDetails"
+ })
+ public CreateDatabaseFromSnapshotDetails(
+ String sourceSnapshotId,
+ Boolean isThinClone,
+ char[] sourceTdePassword,
+ char[] sourceAdminPassword,
+ EncryptionKeyLocationDetails sourceEncryptionKeyLocationDetails,
+ char[] tdeWalletPassword,
+ DbBackupConfig dbBackupConfig,
+ char[] adminPassword,
+ String dbUniqueName,
+ String dbName,
+ String characterSet,
+ String ncharacterSet,
+ String sidPrefix,
+ String keyStoreId,
+ EncryptionKeyLocationDetails encryptionKeyLocationDetails,
+ DatabaseStorageSizeDetails storageSizeDetails,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ DataSafeRegistrationRequestDetails dataSafeRegistrationDetails) {
+ super();
+ this.sourceSnapshotId = sourceSnapshotId;
+ this.isThinClone = isThinClone;
+ this.sourceTdePassword = sourceTdePassword;
+ this.sourceAdminPassword = sourceAdminPassword;
+ this.sourceEncryptionKeyLocationDetails = sourceEncryptionKeyLocationDetails;
+ this.tdeWalletPassword = tdeWalletPassword;
+ this.dbBackupConfig = dbBackupConfig;
+ this.adminPassword = adminPassword;
+ this.dbUniqueName = dbUniqueName;
+ this.dbName = dbName;
+ this.characterSet = characterSet;
+ this.ncharacterSet = ncharacterSet;
+ this.sidPrefix = sidPrefix;
+ this.keyStoreId = keyStoreId;
+ this.encryptionKeyLocationDetails = encryptionKeyLocationDetails;
+ this.storageSizeDetails = storageSizeDetails;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.dataSafeRegistrationDetails = dataSafeRegistrationDetails;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /**
+ * The snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceSnapshotId")
+ private String sourceSnapshotId;
+
+ /**
+ * The snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ *
+ * @param sourceSnapshotId the value to set
+ * @return this builder
+ */
+ public Builder sourceSnapshotId(String sourceSnapshotId) {
+ this.sourceSnapshotId = sourceSnapshotId;
+ this.__explicitlySet__.add("sourceSnapshotId");
+ return this;
+ }
+ /** Specifies whether thick or thin database cloning is to be performed. */
+ @com.fasterxml.jackson.annotation.JsonProperty("isThinClone")
+ private Boolean isThinClone;
+
+ /**
+ * Specifies whether thick or thin database cloning is to be performed.
+ *
+ * @param isThinClone the value to set
+ * @return this builder
+ */
+ public Builder isThinClone(Boolean isThinClone) {
+ this.isThinClone = isThinClone;
+ this.__explicitlySet__.add("isThinClone");
+ return this;
+ }
+ /** The password to open the TDE wallet. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceTdePassword")
+ private char[] sourceTdePassword;
+
+ /**
+ * The password to open the TDE wallet.
+ *
+ * @param sourceTdePassword the value to set
+ * @return this builder
+ */
+ public Builder sourceTdePassword(char[] sourceTdePassword) {
+ this.sourceTdePassword = sourceTdePassword;
+ this.__explicitlySet__.add("sourceTdePassword");
+ return this;
+ }
+
+ public Builder sourceTdePassword(String sourceTdePassword) {
+ this.sourceTdePassword =
+ sourceTdePassword != null ? sourceTdePassword.toCharArray() : null;
+ this.__explicitlySet__.add("sourceTdePassword");
+ return this;
+ }
+ /** The source database's password for SYS, SYSTEM. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceAdminPassword")
+ private char[] sourceAdminPassword;
+
+ /**
+ * The source database's password for SYS, SYSTEM.
+ *
+ * @param sourceAdminPassword the value to set
+ * @return this builder
+ */
+ public Builder sourceAdminPassword(char[] sourceAdminPassword) {
+ this.sourceAdminPassword = sourceAdminPassword;
+ this.__explicitlySet__.add("sourceAdminPassword");
+ return this;
+ }
+
+ public Builder sourceAdminPassword(String sourceAdminPassword) {
+ this.sourceAdminPassword =
+ sourceAdminPassword != null ? sourceAdminPassword.toCharArray() : null;
+ this.__explicitlySet__.add("sourceAdminPassword");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceEncryptionKeyLocationDetails")
+ private EncryptionKeyLocationDetails sourceEncryptionKeyLocationDetails;
+
+ public Builder sourceEncryptionKeyLocationDetails(
+ EncryptionKeyLocationDetails sourceEncryptionKeyLocationDetails) {
+ this.sourceEncryptionKeyLocationDetails = sourceEncryptionKeyLocationDetails;
+ this.__explicitlySet__.add("sourceEncryptionKeyLocationDetails");
+ return this;
+ }
+ /** The password for the target Database TDE wallet. */
+ @com.fasterxml.jackson.annotation.JsonProperty("tdeWalletPassword")
+ private char[] tdeWalletPassword;
+
+ /**
+ * The password for the target Database TDE wallet.
+ *
+ * @param tdeWalletPassword the value to set
+ * @return this builder
+ */
+ public Builder tdeWalletPassword(char[] tdeWalletPassword) {
+ this.tdeWalletPassword = tdeWalletPassword;
+ this.__explicitlySet__.add("tdeWalletPassword");
+ return this;
+ }
+
+ public Builder tdeWalletPassword(String tdeWalletPassword) {
+ this.tdeWalletPassword =
+ tdeWalletPassword != null ? tdeWalletPassword.toCharArray() : null;
+ this.__explicitlySet__.add("tdeWalletPassword");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("dbBackupConfig")
+ private DbBackupConfig dbBackupConfig;
+
+ public Builder dbBackupConfig(DbBackupConfig dbBackupConfig) {
+ this.dbBackupConfig = dbBackupConfig;
+ this.__explicitlySet__.add("dbBackupConfig");
+ return this;
+ }
+ /**
+ * A strong password for SYS, SYSTEM, PDB Admin and TDE Wallet. The password must be at
+ * least nine characters and contain at least two uppercase, two lowercase, two numbers, and
+ * two special characters. The special characters must be _, \\#, or -.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("adminPassword")
+ private char[] adminPassword;
+
+ /**
+ * A strong password for SYS, SYSTEM, PDB Admin and TDE Wallet. The password must be at
+ * least nine characters and contain at least two uppercase, two lowercase, two numbers, and
+ * two special characters. The special characters must be _, \\#, or -.
+ *
+ * @param adminPassword the value to set
+ * @return this builder
+ */
+ public Builder adminPassword(char[] adminPassword) {
+ this.adminPassword = adminPassword;
+ this.__explicitlySet__.add("adminPassword");
+ return this;
+ }
+
+ public Builder adminPassword(String adminPassword) {
+ this.adminPassword = adminPassword != null ? adminPassword.toCharArray() : null;
+ this.__explicitlySet__.add("adminPassword");
+ return this;
+ }
+ /** The {@code DB_UNIQUE_NAME} for the new Oracle Database. */
+ @com.fasterxml.jackson.annotation.JsonProperty("dbUniqueName")
+ private String dbUniqueName;
+
+ /**
+ * The {@code DB_UNIQUE_NAME} for the new Oracle Database.
+ *
+ * @param dbUniqueName the value to set
+ * @return this builder
+ */
+ public Builder dbUniqueName(String dbUniqueName) {
+ this.dbUniqueName = dbUniqueName;
+ this.__explicitlySet__.add("dbUniqueName");
+ return this;
+ }
+ /**
+ * The display name of the database to be created from the snapshot/database. It must begin
+ * with an alphabetic character and can contain a maximum of eight alphanumeric characters.
+ * Special characters are not permitted.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("dbName")
+ private String dbName;
+
+ /**
+ * The display name of the database to be created from the snapshot/database. It must begin
+ * with an alphabetic character and can contain a maximum of eight alphanumeric characters.
+ * Special characters are not permitted.
+ *
+ * @param dbName the value to set
+ * @return this builder
+ */
+ public Builder dbName(String dbName) {
+ this.dbName = dbName;
+ this.__explicitlySet__.add("dbName");
+ return this;
+ }
+ /**
+ * The character set for the database. The default is AL32UTF8. Allowed values are:
+ * AL32UTF8, AR8ADOS710, AR8ADOS720, AR8APTEC715, AR8ARABICMACS, AR8ASMO8X, AR8ISO8859P6,
+ * AR8MSWIN1256, AR8MUSSAD768, AR8NAFITHA711, AR8NAFITHA721, AR8SAKHR706, AR8SAKHR707,
+ * AZ8ISO8859P9E, BG8MSWIN, BG8PC437S, BLT8CP921, BLT8ISO8859P13, BLT8MSWIN1257, BLT8PC775,
+ * BN8BSCII, CDN8PC863, CEL8ISO8859P14, CL8ISO8859P5, CL8ISOIR111, CL8KOI8R, CL8KOI8U,
+ * CL8MACCYRILLICS, CL8MSWIN1251, EE8ISO8859P2, EE8MACCES, EE8MACCROATIANS, EE8MSWIN1250,
+ * EE8PC852, EL8DEC, EL8ISO8859P7, EL8MACGREEKS, EL8MSWIN1253, EL8PC437S, EL8PC851,
+ * EL8PC869, ET8MSWIN923, HU8ABMOD, HU8CWI2, IN8ISCII, IS8PC861, IW8ISO8859P8,
+ * IW8MACHEBREWS, IW8MSWIN1255, IW8PC1507, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE,
+ * JA16VMS, KO16KSC5601, KO16KSCCS, KO16MSWIN949, LA8ISO6937, LA8PASSPORT, LT8MSWIN921,
+ * LT8PC772, LT8PC774, LV8PC1117, LV8PC8LR, LV8RST104090, N8PC865, NE8ISO8859P10,
+ * NEE8ISO8859P4, RU8BESTA, RU8PC855, RU8PC866, SE8ISO8859P3, TH8MACTHAIS, TH8TISASCII,
+ * TR8DEC, TR8MACTURKISHS, TR8MSWIN1254, TR8PC857, US7ASCII, US8PC437, UTF8, VN8MSWIN1258,
+ * VN8VN3, WE8DEC, WE8DG, WE8ISO8859P1, WE8ISO8859P15, WE8ISO8859P9, WE8MACROMAN8S,
+ * WE8MSWIN1252, WE8NCR4970, WE8NEXTSTEP, WE8PC850, WE8PC858, WE8PC860, WE8ROMAN8,
+ * ZHS16CGB231280, ZHS16GBK, ZHT16BIG5, ZHT16CCDC, ZHT16DBT, ZHT16HKSCS, ZHT16MSWIN950,
+ * ZHT32EUC, ZHT32SOPS, ZHT32TRIS
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("characterSet")
+ private String characterSet;
+
+ /**
+ * The character set for the database. The default is AL32UTF8. Allowed values are:
+ * AL32UTF8, AR8ADOS710, AR8ADOS720, AR8APTEC715, AR8ARABICMACS, AR8ASMO8X, AR8ISO8859P6,
+ * AR8MSWIN1256, AR8MUSSAD768, AR8NAFITHA711, AR8NAFITHA721, AR8SAKHR706, AR8SAKHR707,
+ * AZ8ISO8859P9E, BG8MSWIN, BG8PC437S, BLT8CP921, BLT8ISO8859P13, BLT8MSWIN1257, BLT8PC775,
+ * BN8BSCII, CDN8PC863, CEL8ISO8859P14, CL8ISO8859P5, CL8ISOIR111, CL8KOI8R, CL8KOI8U,
+ * CL8MACCYRILLICS, CL8MSWIN1251, EE8ISO8859P2, EE8MACCES, EE8MACCROATIANS, EE8MSWIN1250,
+ * EE8PC852, EL8DEC, EL8ISO8859P7, EL8MACGREEKS, EL8MSWIN1253, EL8PC437S, EL8PC851,
+ * EL8PC869, ET8MSWIN923, HU8ABMOD, HU8CWI2, IN8ISCII, IS8PC861, IW8ISO8859P8,
+ * IW8MACHEBREWS, IW8MSWIN1255, IW8PC1507, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE,
+ * JA16VMS, KO16KSC5601, KO16KSCCS, KO16MSWIN949, LA8ISO6937, LA8PASSPORT, LT8MSWIN921,
+ * LT8PC772, LT8PC774, LV8PC1117, LV8PC8LR, LV8RST104090, N8PC865, NE8ISO8859P10,
+ * NEE8ISO8859P4, RU8BESTA, RU8PC855, RU8PC866, SE8ISO8859P3, TH8MACTHAIS, TH8TISASCII,
+ * TR8DEC, TR8MACTURKISHS, TR8MSWIN1254, TR8PC857, US7ASCII, US8PC437, UTF8, VN8MSWIN1258,
+ * VN8VN3, WE8DEC, WE8DG, WE8ISO8859P1, WE8ISO8859P15, WE8ISO8859P9, WE8MACROMAN8S,
+ * WE8MSWIN1252, WE8NCR4970, WE8NEXTSTEP, WE8PC850, WE8PC858, WE8PC860, WE8ROMAN8,
+ * ZHS16CGB231280, ZHS16GBK, ZHT16BIG5, ZHT16CCDC, ZHT16DBT, ZHT16HKSCS, ZHT16MSWIN950,
+ * ZHT32EUC, ZHT32SOPS, ZHT32TRIS
+ *
+ * @param characterSet the value to set
+ * @return this builder
+ */
+ public Builder characterSet(String characterSet) {
+ this.characterSet = characterSet;
+ this.__explicitlySet__.add("characterSet");
+ return this;
+ }
+ /**
+ * The national character set for the database. The default is AL16UTF16. Allowed values
+ * are: AL16UTF16 or UTF8.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("ncharacterSet")
+ private String ncharacterSet;
+
+ /**
+ * The national character set for the database. The default is AL16UTF16. Allowed values
+ * are: AL16UTF16 or UTF8.
+ *
+ * @param ncharacterSet the value to set
+ * @return this builder
+ */
+ public Builder ncharacterSet(String ncharacterSet) {
+ this.ncharacterSet = ncharacterSet;
+ this.__explicitlySet__.add("ncharacterSet");
+ return this;
+ }
+ /** Specifies a prefix for the {@code Oracle SID} of the database to be created. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sidPrefix")
+ private String sidPrefix;
+
+ /**
+ * Specifies a prefix for the {@code Oracle SID} of the database to be created.
+ *
+ * @param sidPrefix the value to set
+ * @return this builder
+ */
+ public Builder sidPrefix(String sidPrefix) {
+ this.sidPrefix = sidPrefix;
+ this.__explicitlySet__.add("sidPrefix");
+ return this;
+ }
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * key store of Oracle Vault.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("keyStoreId")
+ private String keyStoreId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * key store of Oracle Vault.
+ *
+ * @param keyStoreId the value to set
+ * @return this builder
+ */
+ public Builder keyStoreId(String keyStoreId) {
+ this.keyStoreId = keyStoreId;
+ this.__explicitlySet__.add("keyStoreId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("encryptionKeyLocationDetails")
+ private EncryptionKeyLocationDetails encryptionKeyLocationDetails;
+
+ public Builder encryptionKeyLocationDetails(
+ EncryptionKeyLocationDetails encryptionKeyLocationDetails) {
+ this.encryptionKeyLocationDetails = encryptionKeyLocationDetails;
+ this.__explicitlySet__.add("encryptionKeyLocationDetails");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("storageSizeDetails")
+ private DatabaseStorageSizeDetails storageSizeDetails;
+
+ public Builder storageSizeDetails(DatabaseStorageSizeDetails storageSizeDetails) {
+ this.storageSizeDetails = storageSizeDetails;
+ this.__explicitlySet__.add("storageSizeDetails");
+ 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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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("dataSafeRegistrationDetails")
+ private DataSafeRegistrationRequestDetails dataSafeRegistrationDetails;
+
+ public Builder dataSafeRegistrationDetails(
+ DataSafeRegistrationRequestDetails dataSafeRegistrationDetails) {
+ this.dataSafeRegistrationDetails = dataSafeRegistrationDetails;
+ this.__explicitlySet__.add("dataSafeRegistrationDetails");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public CreateDatabaseFromSnapshotDetails build() {
+ CreateDatabaseFromSnapshotDetails model =
+ new CreateDatabaseFromSnapshotDetails(
+ this.sourceSnapshotId,
+ this.isThinClone,
+ this.sourceTdePassword,
+ this.sourceAdminPassword,
+ this.sourceEncryptionKeyLocationDetails,
+ this.tdeWalletPassword,
+ this.dbBackupConfig,
+ this.adminPassword,
+ this.dbUniqueName,
+ this.dbName,
+ this.characterSet,
+ this.ncharacterSet,
+ this.sidPrefix,
+ this.keyStoreId,
+ this.encryptionKeyLocationDetails,
+ this.storageSizeDetails,
+ this.freeformTags,
+ this.definedTags,
+ this.dataSafeRegistrationDetails);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CreateDatabaseFromSnapshotDetails model) {
+ if (model.wasPropertyExplicitlySet("sourceSnapshotId")) {
+ this.sourceSnapshotId(model.getSourceSnapshotId());
+ }
+ if (model.wasPropertyExplicitlySet("isThinClone")) {
+ this.isThinClone(model.getIsThinClone());
+ }
+ if (model.wasPropertyExplicitlySet("sourceTdePassword")) {
+ this.sourceTdePassword(model.getSourceTdePassword());
+ }
+ if (model.wasPropertyExplicitlySet("sourceAdminPassword")) {
+ this.sourceAdminPassword(model.getSourceAdminPassword());
+ }
+ if (model.wasPropertyExplicitlySet("sourceEncryptionKeyLocationDetails")) {
+ this.sourceEncryptionKeyLocationDetails(
+ model.getSourceEncryptionKeyLocationDetails());
+ }
+ if (model.wasPropertyExplicitlySet("tdeWalletPassword")) {
+ this.tdeWalletPassword(model.getTdeWalletPassword());
+ }
+ if (model.wasPropertyExplicitlySet("dbBackupConfig")) {
+ this.dbBackupConfig(model.getDbBackupConfig());
+ }
+ if (model.wasPropertyExplicitlySet("adminPassword")) {
+ this.adminPassword(model.getAdminPassword());
+ }
+ if (model.wasPropertyExplicitlySet("dbUniqueName")) {
+ this.dbUniqueName(model.getDbUniqueName());
+ }
+ if (model.wasPropertyExplicitlySet("dbName")) {
+ this.dbName(model.getDbName());
+ }
+ if (model.wasPropertyExplicitlySet("characterSet")) {
+ this.characterSet(model.getCharacterSet());
+ }
+ if (model.wasPropertyExplicitlySet("ncharacterSet")) {
+ this.ncharacterSet(model.getNcharacterSet());
+ }
+ if (model.wasPropertyExplicitlySet("sidPrefix")) {
+ this.sidPrefix(model.getSidPrefix());
+ }
+ if (model.wasPropertyExplicitlySet("keyStoreId")) {
+ this.keyStoreId(model.getKeyStoreId());
+ }
+ if (model.wasPropertyExplicitlySet("encryptionKeyLocationDetails")) {
+ this.encryptionKeyLocationDetails(model.getEncryptionKeyLocationDetails());
+ }
+ if (model.wasPropertyExplicitlySet("storageSizeDetails")) {
+ this.storageSizeDetails(model.getStorageSizeDetails());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ if (model.wasPropertyExplicitlySet("dataSafeRegistrationDetails")) {
+ this.dataSafeRegistrationDetails(model.getDataSafeRegistrationDetails());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /**
+ * The snapshot [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceSnapshotId")
+ private final String sourceSnapshotId;
+
+ /**
+ * The snapshot [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ *
+ * @return the value
+ */
+ public String getSourceSnapshotId() {
+ return sourceSnapshotId;
+ }
+
+ /** Specifies whether thick or thin database cloning is to be performed. */
+ @com.fasterxml.jackson.annotation.JsonProperty("isThinClone")
+ private final Boolean isThinClone;
+
+ /**
+ * Specifies whether thick or thin database cloning is to be performed.
+ *
+ * @return the value
+ */
+ public Boolean getIsThinClone() {
+ return isThinClone;
+ }
+
+ /** The password to open the TDE wallet. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceTdePassword")
+ private final char[] sourceTdePassword;
+
+ /**
+ * The password to open the TDE wallet.
+ *
+ * @return the value
+ * @deprecated Use getSourceTdePassword__AsCharArray() instead.
+ */
+ @Deprecated
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public String getSourceTdePassword() {
+ return sourceTdePassword != null ? new String(sourceTdePassword) : null;
+ }
+
+ /**
+ * The password to open the TDE wallet.
+ *
+ * @return the value
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceTdePassword")
+ public char[] getSourceTdePassword__AsCharArray() {
+ return sourceTdePassword;
+ }
+
+ /** The source database's password for SYS, SYSTEM. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceAdminPassword")
+ private final char[] sourceAdminPassword;
+
+ /**
+ * The source database's password for SYS, SYSTEM.
+ *
+ * @return the value
+ * @deprecated Use getSourceAdminPassword__AsCharArray() instead.
+ */
+ @Deprecated
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public String getSourceAdminPassword() {
+ return sourceAdminPassword != null ? new String(sourceAdminPassword) : null;
+ }
+
+ /**
+ * The source database's password for SYS, SYSTEM.
+ *
+ * @return the value
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceAdminPassword")
+ public char[] getSourceAdminPassword__AsCharArray() {
+ return sourceAdminPassword;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceEncryptionKeyLocationDetails")
+ private final EncryptionKeyLocationDetails sourceEncryptionKeyLocationDetails;
+
+ public EncryptionKeyLocationDetails getSourceEncryptionKeyLocationDetails() {
+ return sourceEncryptionKeyLocationDetails;
+ }
+
+ /** The password for the target Database TDE wallet. */
+ @com.fasterxml.jackson.annotation.JsonProperty("tdeWalletPassword")
+ private final char[] tdeWalletPassword;
+
+ /**
+ * The password for the target Database TDE wallet.
+ *
+ * @return the value
+ * @deprecated Use getTdeWalletPassword__AsCharArray() instead.
+ */
+ @Deprecated
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public String getTdeWalletPassword() {
+ return tdeWalletPassword != null ? new String(tdeWalletPassword) : null;
+ }
+
+ /**
+ * The password for the target Database TDE wallet.
+ *
+ * @return the value
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("tdeWalletPassword")
+ public char[] getTdeWalletPassword__AsCharArray() {
+ return tdeWalletPassword;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("dbBackupConfig")
+ private final DbBackupConfig dbBackupConfig;
+
+ public DbBackupConfig getDbBackupConfig() {
+ return dbBackupConfig;
+ }
+
+ /**
+ * A strong password for SYS, SYSTEM, PDB Admin and TDE Wallet. The password must be at least
+ * nine characters and contain at least two uppercase, two lowercase, two numbers, and two
+ * special characters. The special characters must be _, \\#, or -.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("adminPassword")
+ private final char[] adminPassword;
+
+ /**
+ * A strong password for SYS, SYSTEM, PDB Admin and TDE Wallet. The password must be at least
+ * nine characters and contain at least two uppercase, two lowercase, two numbers, and two
+ * special characters. The special characters must be _, \\#, or -.
+ *
+ * @return the value
+ * @deprecated Use getAdminPassword__AsCharArray() instead.
+ */
+ @Deprecated
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public String getAdminPassword() {
+ return adminPassword != null ? new String(adminPassword) : null;
+ }
+
+ /**
+ * A strong password for SYS, SYSTEM, PDB Admin and TDE Wallet. The password must be at least
+ * nine characters and contain at least two uppercase, two lowercase, two numbers, and two
+ * special characters. The special characters must be _, \\#, or -.
+ *
+ * @return the value
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("adminPassword")
+ public char[] getAdminPassword__AsCharArray() {
+ return adminPassword;
+ }
+
+ /** The {@code DB_UNIQUE_NAME} for the new Oracle Database. */
+ @com.fasterxml.jackson.annotation.JsonProperty("dbUniqueName")
+ private final String dbUniqueName;
+
+ /**
+ * The {@code DB_UNIQUE_NAME} for the new Oracle Database.
+ *
+ * @return the value
+ */
+ public String getDbUniqueName() {
+ return dbUniqueName;
+ }
+
+ /**
+ * The display name of the database to be created from the snapshot/database. It must begin with
+ * an alphabetic character and can contain a maximum of eight alphanumeric characters. Special
+ * characters are not permitted.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("dbName")
+ private final String dbName;
+
+ /**
+ * The display name of the database to be created from the snapshot/database. It must begin with
+ * an alphabetic character and can contain a maximum of eight alphanumeric characters. Special
+ * characters are not permitted.
+ *
+ * @return the value
+ */
+ public String getDbName() {
+ return dbName;
+ }
+
+ /**
+ * The character set for the database. The default is AL32UTF8. Allowed values are: AL32UTF8,
+ * AR8ADOS710, AR8ADOS720, AR8APTEC715, AR8ARABICMACS, AR8ASMO8X, AR8ISO8859P6, AR8MSWIN1256,
+ * AR8MUSSAD768, AR8NAFITHA711, AR8NAFITHA721, AR8SAKHR706, AR8SAKHR707, AZ8ISO8859P9E,
+ * BG8MSWIN, BG8PC437S, BLT8CP921, BLT8ISO8859P13, BLT8MSWIN1257, BLT8PC775, BN8BSCII,
+ * CDN8PC863, CEL8ISO8859P14, CL8ISO8859P5, CL8ISOIR111, CL8KOI8R, CL8KOI8U, CL8MACCYRILLICS,
+ * CL8MSWIN1251, EE8ISO8859P2, EE8MACCES, EE8MACCROATIANS, EE8MSWIN1250, EE8PC852, EL8DEC,
+ * EL8ISO8859P7, EL8MACGREEKS, EL8MSWIN1253, EL8PC437S, EL8PC851, EL8PC869, ET8MSWIN923,
+ * HU8ABMOD, HU8CWI2, IN8ISCII, IS8PC861, IW8ISO8859P8, IW8MACHEBREWS, IW8MSWIN1255, IW8PC1507,
+ * JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE, JA16VMS, KO16KSC5601, KO16KSCCS,
+ * KO16MSWIN949, LA8ISO6937, LA8PASSPORT, LT8MSWIN921, LT8PC772, LT8PC774, LV8PC1117, LV8PC8LR,
+ * LV8RST104090, N8PC865, NE8ISO8859P10, NEE8ISO8859P4, RU8BESTA, RU8PC855, RU8PC866,
+ * SE8ISO8859P3, TH8MACTHAIS, TH8TISASCII, TR8DEC, TR8MACTURKISHS, TR8MSWIN1254, TR8PC857,
+ * US7ASCII, US8PC437, UTF8, VN8MSWIN1258, VN8VN3, WE8DEC, WE8DG, WE8ISO8859P1, WE8ISO8859P15,
+ * WE8ISO8859P9, WE8MACROMAN8S, WE8MSWIN1252, WE8NCR4970, WE8NEXTSTEP, WE8PC850, WE8PC858,
+ * WE8PC860, WE8ROMAN8, ZHS16CGB231280, ZHS16GBK, ZHT16BIG5, ZHT16CCDC, ZHT16DBT, ZHT16HKSCS,
+ * ZHT16MSWIN950, ZHT32EUC, ZHT32SOPS, ZHT32TRIS
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("characterSet")
+ private final String characterSet;
+
+ /**
+ * The character set for the database. The default is AL32UTF8. Allowed values are: AL32UTF8,
+ * AR8ADOS710, AR8ADOS720, AR8APTEC715, AR8ARABICMACS, AR8ASMO8X, AR8ISO8859P6, AR8MSWIN1256,
+ * AR8MUSSAD768, AR8NAFITHA711, AR8NAFITHA721, AR8SAKHR706, AR8SAKHR707, AZ8ISO8859P9E,
+ * BG8MSWIN, BG8PC437S, BLT8CP921, BLT8ISO8859P13, BLT8MSWIN1257, BLT8PC775, BN8BSCII,
+ * CDN8PC863, CEL8ISO8859P14, CL8ISO8859P5, CL8ISOIR111, CL8KOI8R, CL8KOI8U, CL8MACCYRILLICS,
+ * CL8MSWIN1251, EE8ISO8859P2, EE8MACCES, EE8MACCROATIANS, EE8MSWIN1250, EE8PC852, EL8DEC,
+ * EL8ISO8859P7, EL8MACGREEKS, EL8MSWIN1253, EL8PC437S, EL8PC851, EL8PC869, ET8MSWIN923,
+ * HU8ABMOD, HU8CWI2, IN8ISCII, IS8PC861, IW8ISO8859P8, IW8MACHEBREWS, IW8MSWIN1255, IW8PC1507,
+ * JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE, JA16VMS, KO16KSC5601, KO16KSCCS,
+ * KO16MSWIN949, LA8ISO6937, LA8PASSPORT, LT8MSWIN921, LT8PC772, LT8PC774, LV8PC1117, LV8PC8LR,
+ * LV8RST104090, N8PC865, NE8ISO8859P10, NEE8ISO8859P4, RU8BESTA, RU8PC855, RU8PC866,
+ * SE8ISO8859P3, TH8MACTHAIS, TH8TISASCII, TR8DEC, TR8MACTURKISHS, TR8MSWIN1254, TR8PC857,
+ * US7ASCII, US8PC437, UTF8, VN8MSWIN1258, VN8VN3, WE8DEC, WE8DG, WE8ISO8859P1, WE8ISO8859P15,
+ * WE8ISO8859P9, WE8MACROMAN8S, WE8MSWIN1252, WE8NCR4970, WE8NEXTSTEP, WE8PC850, WE8PC858,
+ * WE8PC860, WE8ROMAN8, ZHS16CGB231280, ZHS16GBK, ZHT16BIG5, ZHT16CCDC, ZHT16DBT, ZHT16HKSCS,
+ * ZHT16MSWIN950, ZHT32EUC, ZHT32SOPS, ZHT32TRIS
+ *
+ * @return the value
+ */
+ public String getCharacterSet() {
+ return characterSet;
+ }
+
+ /**
+ * The national character set for the database. The default is AL16UTF16. Allowed values are:
+ * AL16UTF16 or UTF8.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("ncharacterSet")
+ private final String ncharacterSet;
+
+ /**
+ * The national character set for the database. The default is AL16UTF16. Allowed values are:
+ * AL16UTF16 or UTF8.
+ *
+ * @return the value
+ */
+ public String getNcharacterSet() {
+ return ncharacterSet;
+ }
+
+ /** Specifies a prefix for the {@code Oracle SID} of the database to be created. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sidPrefix")
+ private final String sidPrefix;
+
+ /**
+ * Specifies a prefix for the {@code Oracle SID} of the database to be created.
+ *
+ * @return the value
+ */
+ public String getSidPrefix() {
+ return sidPrefix;
+ }
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the key
+ * store of Oracle Vault.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("keyStoreId")
+ private final String keyStoreId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the key
+ * store of Oracle Vault.
+ *
+ * @return the value
+ */
+ public String getKeyStoreId() {
+ return keyStoreId;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("encryptionKeyLocationDetails")
+ private final EncryptionKeyLocationDetails encryptionKeyLocationDetails;
+
+ public EncryptionKeyLocationDetails getEncryptionKeyLocationDetails() {
+ return encryptionKeyLocationDetails;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("storageSizeDetails")
+ private final DatabaseStorageSizeDetails storageSizeDetails;
+
+ public DatabaseStorageSizeDetails getStorageSizeDetails() {
+ return storageSizeDetails;
+ }
+
+ /**
+ * 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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("dataSafeRegistrationDetails")
+ private final DataSafeRegistrationRequestDetails dataSafeRegistrationDetails;
+
+ public DataSafeRegistrationRequestDetails getDataSafeRegistrationDetails() {
+ return dataSafeRegistrationDetails;
+ }
+
+ @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("CreateDatabaseFromSnapshotDetails(");
+ sb.append("super=").append(super.toString());
+ sb.append("sourceSnapshotId=").append(String.valueOf(this.sourceSnapshotId));
+ sb.append(", isThinClone=").append(String.valueOf(this.isThinClone));
+ sb.append(", sourceTdePassword=").append("");
+ sb.append(", sourceAdminPassword=").append("");
+ sb.append(", sourceEncryptionKeyLocationDetails=")
+ .append(String.valueOf(this.sourceEncryptionKeyLocationDetails));
+ sb.append(", tdeWalletPassword=").append("");
+ sb.append(", dbBackupConfig=").append(String.valueOf(this.dbBackupConfig));
+ sb.append(", adminPassword=").append("");
+ sb.append(", dbUniqueName=").append(String.valueOf(this.dbUniqueName));
+ sb.append(", dbName=").append(String.valueOf(this.dbName));
+ sb.append(", characterSet=").append(String.valueOf(this.characterSet));
+ sb.append(", ncharacterSet=").append(String.valueOf(this.ncharacterSet));
+ sb.append(", sidPrefix=").append(String.valueOf(this.sidPrefix));
+ sb.append(", keyStoreId=").append(String.valueOf(this.keyStoreId));
+ sb.append(", encryptionKeyLocationDetails=")
+ .append(String.valueOf(this.encryptionKeyLocationDetails));
+ sb.append(", storageSizeDetails=").append(String.valueOf(this.storageSizeDetails));
+ sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
+ sb.append(", definedTags=").append(String.valueOf(this.definedTags));
+ sb.append(", dataSafeRegistrationDetails=")
+ .append(String.valueOf(this.dataSafeRegistrationDetails));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CreateDatabaseFromSnapshotDetails)) {
+ return false;
+ }
+
+ CreateDatabaseFromSnapshotDetails other = (CreateDatabaseFromSnapshotDetails) o;
+ return java.util.Objects.equals(this.sourceSnapshotId, other.sourceSnapshotId)
+ && java.util.Objects.equals(this.isThinClone, other.isThinClone)
+ && java.util.Objects.equals(this.sourceTdePassword, other.sourceTdePassword)
+ && java.util.Objects.equals(this.sourceAdminPassword, other.sourceAdminPassword)
+ && java.util.Objects.equals(
+ this.sourceEncryptionKeyLocationDetails,
+ other.sourceEncryptionKeyLocationDetails)
+ && java.util.Objects.equals(this.tdeWalletPassword, other.tdeWalletPassword)
+ && java.util.Objects.equals(this.dbBackupConfig, other.dbBackupConfig)
+ && java.util.Objects.equals(this.adminPassword, other.adminPassword)
+ && java.util.Objects.equals(this.dbUniqueName, other.dbUniqueName)
+ && java.util.Objects.equals(this.dbName, other.dbName)
+ && java.util.Objects.equals(this.characterSet, other.characterSet)
+ && java.util.Objects.equals(this.ncharacterSet, other.ncharacterSet)
+ && java.util.Objects.equals(this.sidPrefix, other.sidPrefix)
+ && java.util.Objects.equals(this.keyStoreId, other.keyStoreId)
+ && java.util.Objects.equals(
+ this.encryptionKeyLocationDetails, other.encryptionKeyLocationDetails)
+ && java.util.Objects.equals(this.storageSizeDetails, other.storageSizeDetails)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && java.util.Objects.equals(
+ this.dataSafeRegistrationDetails, other.dataSafeRegistrationDetails)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result =
+ (result * PRIME)
+ + (this.sourceSnapshotId == null ? 43 : this.sourceSnapshotId.hashCode());
+ result = (result * PRIME) + (this.isThinClone == null ? 43 : this.isThinClone.hashCode());
+ result =
+ (result * PRIME)
+ + (this.sourceTdePassword == null ? 43 : this.sourceTdePassword.hashCode());
+ result =
+ (result * PRIME)
+ + (this.sourceAdminPassword == null
+ ? 43
+ : this.sourceAdminPassword.hashCode());
+ result =
+ (result * PRIME)
+ + (this.sourceEncryptionKeyLocationDetails == null
+ ? 43
+ : this.sourceEncryptionKeyLocationDetails.hashCode());
+ result =
+ (result * PRIME)
+ + (this.tdeWalletPassword == null ? 43 : this.tdeWalletPassword.hashCode());
+ result =
+ (result * PRIME)
+ + (this.dbBackupConfig == null ? 43 : this.dbBackupConfig.hashCode());
+ result =
+ (result * PRIME)
+ + (this.adminPassword == null ? 43 : this.adminPassword.hashCode());
+ result = (result * PRIME) + (this.dbUniqueName == null ? 43 : this.dbUniqueName.hashCode());
+ result = (result * PRIME) + (this.dbName == null ? 43 : this.dbName.hashCode());
+ result = (result * PRIME) + (this.characterSet == null ? 43 : this.characterSet.hashCode());
+ result =
+ (result * PRIME)
+ + (this.ncharacterSet == null ? 43 : this.ncharacterSet.hashCode());
+ result = (result * PRIME) + (this.sidPrefix == null ? 43 : this.sidPrefix.hashCode());
+ result = (result * PRIME) + (this.keyStoreId == null ? 43 : this.keyStoreId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.encryptionKeyLocationDetails == null
+ ? 43
+ : this.encryptionKeyLocationDetails.hashCode());
+ result =
+ (result * PRIME)
+ + (this.storageSizeDetails == null
+ ? 43
+ : this.storageSizeDetails.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.dataSafeRegistrationDetails == null
+ ? 43
+ : this.dataSafeRegistrationDetails.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateDatabaseSnapshotDetails.java b/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateDatabaseSnapshotDetails.java
new file mode 100644
index 00000000000..a61c5a5d879
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/model/CreateDatabaseSnapshotDetails.java
@@ -0,0 +1,286 @@
+/**
+ * Copyright (c) 2016, 2026, 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;
+
+/**
+ * Details to create a Database Snapshot.
+ * 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 = CreateDatabaseSnapshotDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CreateDatabaseSnapshotDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"name", "databaseId", "freeformTags", "definedTags"})
+ public CreateDatabaseSnapshotDetails(
+ String name,
+ String databaseId,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags) {
+ super();
+ this.name = name;
+ this.databaseId = databaseId;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The user-friendly name for the Database Snapshot. The name should be unique. */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private String name;
+
+ /**
+ * The user-friendly name for the Database Snapshot. The name should be unique.
+ *
+ * @param name the value to set
+ * @return this builder
+ */
+ public Builder name(String name) {
+ this.name = name;
+ this.__explicitlySet__.add("name");
+ return this;
+ }
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("databaseId")
+ private String databaseId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database.
+ *
+ * @param databaseId the value to set
+ * @return this builder
+ */
+ public Builder databaseId(String databaseId) {
+ this.databaseId = databaseId;
+ this.__explicitlySet__.add("databaseId");
+ 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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public CreateDatabaseSnapshotDetails build() {
+ CreateDatabaseSnapshotDetails model =
+ new CreateDatabaseSnapshotDetails(
+ this.name, this.databaseId, this.freeformTags, this.definedTags);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CreateDatabaseSnapshotDetails model) {
+ if (model.wasPropertyExplicitlySet("name")) {
+ this.name(model.getName());
+ }
+ if (model.wasPropertyExplicitlySet("databaseId")) {
+ this.databaseId(model.getDatabaseId());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** The user-friendly name for the Database Snapshot. The name should be unique. */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private final String name;
+
+ /**
+ * The user-friendly name for the Database Snapshot. The name should be unique.
+ *
+ * @return the value
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("databaseId")
+ private final String databaseId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database.
+ *
+ * @return the value
+ */
+ public String getDatabaseId() {
+ return databaseId;
+ }
+
+ /**
+ * 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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ @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("CreateDatabaseSnapshotDetails(");
+ sb.append("super=").append(super.toString());
+ sb.append("name=").append(String.valueOf(this.name));
+ sb.append(", databaseId=").append(String.valueOf(this.databaseId));
+ sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
+ sb.append(", definedTags=").append(String.valueOf(this.definedTags));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CreateDatabaseSnapshotDetails)) {
+ return false;
+ }
+
+ CreateDatabaseSnapshotDetails other = (CreateDatabaseSnapshotDetails) o;
+ return java.util.Objects.equals(this.name, other.name)
+ && java.util.Objects.equals(this.databaseId, other.databaseId)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.name == null ? 43 : this.name.hashCode());
+ result = (result * PRIME) + (this.databaseId == null ? 43 : this.databaseId.hashCode());
+ result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
+ result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/model/DatabaseSnapshot.java b/bmc-database/src/main/java/com/oracle/bmc/database/model/DatabaseSnapshot.java
new file mode 100644
index 00000000000..15b96f69a2e
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/model/DatabaseSnapshot.java
@@ -0,0 +1,664 @@
+/**
+ * Copyright (c) 2016, 2026, 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;
+
+/**
+ * Details of the Database Snapshot.
+ * 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 = DatabaseSnapshot.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class DatabaseSnapshot
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "lifecycleState",
+ "name",
+ "databaseId",
+ "timeCreated",
+ "lifecycleDetails",
+ "freeformTags",
+ "definedTags",
+ "systemTags",
+ "compartmentId",
+ "clusterId"
+ })
+ public DatabaseSnapshot(
+ String id,
+ LifecycleState lifecycleState,
+ String name,
+ String databaseId,
+ java.util.Date timeCreated,
+ String lifecycleDetails,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ java.util.Map> systemTags,
+ String compartmentId,
+ String clusterId) {
+ super();
+ this.id = id;
+ this.lifecycleState = lifecycleState;
+ this.name = name;
+ this.databaseId = databaseId;
+ this.timeCreated = timeCreated;
+ this.lifecycleDetails = lifecycleDetails;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.systemTags = systemTags;
+ this.compartmentId = compartmentId;
+ this.clusterId = clusterId;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database Snapshot.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database Snapshot.
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /** The current state of the Exadata Database Snapshot. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Exadata Database Snapshot.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder
+ */
+ public Builder lifecycleState(LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ this.__explicitlySet__.add("lifecycleState");
+ return this;
+ }
+ /** The user-friendly name for the Database Snapshot. The name should be unique. */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private String name;
+
+ /**
+ * The user-friendly name for the Database Snapshot. The name should be unique.
+ *
+ * @param name the value to set
+ * @return this builder
+ */
+ public Builder name(String name) {
+ this.name = name;
+ this.__explicitlySet__.add("name");
+ return this;
+ }
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("databaseId")
+ private String databaseId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database.
+ *
+ * @param databaseId the value to set
+ * @return this builder
+ */
+ public Builder databaseId(String databaseId) {
+ this.databaseId = databaseId;
+ this.__explicitlySet__.add("databaseId");
+ return this;
+ }
+ /**
+ * The date and time that the Exadata Database Snapshot was created, as expressed in RFC
+ * 3339 format. For example: 2023-06-27T21:10:29Z
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private java.util.Date timeCreated;
+
+ /**
+ * The date and time that the Exadata Database Snapshot was created, as expressed in RFC
+ * 3339 format. For example: 2023-06-27T21:10:29Z
+ *
+ * @param timeCreated the value to set
+ * @return this builder
+ */
+ public Builder timeCreated(java.util.Date timeCreated) {
+ this.timeCreated = timeCreated;
+ this.__explicitlySet__.add("timeCreated");
+ return this;
+ }
+ /**
+ * Additional information about the current lifecycle state of the Exadata Database
+ * Snapshot.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private String lifecycleDetails;
+
+ /**
+ * Additional information about the current lifecycle state of the Exadata Database
+ * Snapshot.
+ *
+ * @param lifecycleDetails the value to set
+ * @return this builder
+ */
+ public Builder lifecycleDetails(String lifecycleDetails) {
+ this.lifecycleDetails = lifecycleDetails;
+ this.__explicitlySet__.add("lifecycleDetails");
+ 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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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;
+ }
+ /**
+ * System tags for this resource. Each key is predefined and scoped to a namespace. For more
+ * information, see [Resource
+ * Tags](https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("systemTags")
+ private java.util.Map> systemTags;
+
+ /**
+ * System tags for this resource. Each key is predefined and scoped to a namespace. For more
+ * information, see [Resource
+ * Tags](https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ *
+ * @param systemTags the value to set
+ * @return this builder
+ */
+ public Builder systemTags(java.util.Map> systemTags) {
+ this.systemTags = systemTags;
+ this.__explicitlySet__.add("systemTags");
+ return this;
+ }
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private String compartmentId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment.
+ *
+ * @param compartmentId the value to set
+ * @return this builder
+ */
+ public Builder compartmentId(String compartmentId) {
+ this.compartmentId = compartmentId;
+ this.__explicitlySet__.add("compartmentId");
+ return this;
+ }
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * VM cluster.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("clusterId")
+ private String clusterId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * VM cluster.
+ *
+ * @param clusterId the value to set
+ * @return this builder
+ */
+ public Builder clusterId(String clusterId) {
+ this.clusterId = clusterId;
+ this.__explicitlySet__.add("clusterId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public DatabaseSnapshot build() {
+ DatabaseSnapshot model =
+ new DatabaseSnapshot(
+ this.id,
+ this.lifecycleState,
+ this.name,
+ this.databaseId,
+ this.timeCreated,
+ this.lifecycleDetails,
+ this.freeformTags,
+ this.definedTags,
+ this.systemTags,
+ this.compartmentId,
+ this.clusterId);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(DatabaseSnapshot model) {
+ if (model.wasPropertyExplicitlySet("id")) {
+ this.id(model.getId());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleState")) {
+ this.lifecycleState(model.getLifecycleState());
+ }
+ if (model.wasPropertyExplicitlySet("name")) {
+ this.name(model.getName());
+ }
+ if (model.wasPropertyExplicitlySet("databaseId")) {
+ this.databaseId(model.getDatabaseId());
+ }
+ if (model.wasPropertyExplicitlySet("timeCreated")) {
+ this.timeCreated(model.getTimeCreated());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleDetails")) {
+ this.lifecycleDetails(model.getLifecycleDetails());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ if (model.wasPropertyExplicitlySet("systemTags")) {
+ this.systemTags(model.getSystemTags());
+ }
+ if (model.wasPropertyExplicitlySet("compartmentId")) {
+ this.compartmentId(model.getCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("clusterId")) {
+ this.clusterId(model.getClusterId());
+ }
+ 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.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database Snapshot.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private final String id;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database Snapshot.
+ *
+ * @return the value
+ */
+ public String getId() {
+ return id;
+ }
+
+ /** The current state of the Exadata Database Snapshot. */
+ public enum LifecycleState implements com.oracle.bmc.http.internal.BmcEnum {
+ Creating("CREATING"),
+ Available("AVAILABLE"),
+ Terminating("TERMINATING"),
+ Terminated("TERMINATED"),
+ 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 static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(LifecycleState.class);
+
+ 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 Exadata Database Snapshot. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private final LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Exadata Database Snapshot.
+ *
+ * @return the value
+ */
+ public LifecycleState getLifecycleState() {
+ return lifecycleState;
+ }
+
+ /** The user-friendly name for the Database Snapshot. The name should be unique. */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private final String name;
+
+ /**
+ * The user-friendly name for the Database Snapshot. The name should be unique.
+ *
+ * @return the value
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("databaseId")
+ private final String databaseId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database.
+ *
+ * @return the value
+ */
+ public String getDatabaseId() {
+ return databaseId;
+ }
+
+ /**
+ * The date and time that the Exadata Database Snapshot was created, as expressed in RFC 3339
+ * format. For example: 2023-06-27T21:10:29Z
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private final java.util.Date timeCreated;
+
+ /**
+ * The date and time that the Exadata Database Snapshot was created, as expressed in RFC 3339
+ * format. For example: 2023-06-27T21:10:29Z
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCreated() {
+ return timeCreated;
+ }
+
+ /**
+ * Additional information about the current lifecycle state of the Exadata Database Snapshot.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private final String lifecycleDetails;
+
+ /**
+ * Additional information about the current lifecycle state of the Exadata Database Snapshot.
+ *
+ * @return the value
+ */
+ public String getLifecycleDetails() {
+ return lifecycleDetails;
+ }
+
+ /**
+ * 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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ /**
+ * System tags for this resource. Each key is predefined and scoped to a namespace. For more
+ * information, see [Resource
+ * Tags](https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("systemTags")
+ private final java.util.Map> systemTags;
+
+ /**
+ * System tags for this resource. Each key is predefined and scoped to a namespace. For more
+ * information, see [Resource
+ * Tags](https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ *
+ * @return the value
+ */
+ public java.util.Map> getSystemTags() {
+ return systemTags;
+ }
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private final String compartmentId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment.
+ *
+ * @return the value
+ */
+ public String getCompartmentId() {
+ return compartmentId;
+ }
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VM
+ * cluster.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("clusterId")
+ private final String clusterId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VM
+ * cluster.
+ *
+ * @return the value
+ */
+ public String getClusterId() {
+ return clusterId;
+ }
+
+ @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("DatabaseSnapshot(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState));
+ sb.append(", name=").append(String.valueOf(this.name));
+ sb.append(", databaseId=").append(String.valueOf(this.databaseId));
+ sb.append(", timeCreated=").append(String.valueOf(this.timeCreated));
+ sb.append(", lifecycleDetails=").append(String.valueOf(this.lifecycleDetails));
+ sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
+ sb.append(", definedTags=").append(String.valueOf(this.definedTags));
+ sb.append(", systemTags=").append(String.valueOf(this.systemTags));
+ sb.append(", compartmentId=").append(String.valueOf(this.compartmentId));
+ sb.append(", clusterId=").append(String.valueOf(this.clusterId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof DatabaseSnapshot)) {
+ return false;
+ }
+
+ DatabaseSnapshot other = (DatabaseSnapshot) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
+ && java.util.Objects.equals(this.name, other.name)
+ && java.util.Objects.equals(this.databaseId, other.databaseId)
+ && java.util.Objects.equals(this.timeCreated, other.timeCreated)
+ && java.util.Objects.equals(this.lifecycleDetails, other.lifecycleDetails)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && java.util.Objects.equals(this.systemTags, other.systemTags)
+ && java.util.Objects.equals(this.compartmentId, other.compartmentId)
+ && java.util.Objects.equals(this.clusterId, other.clusterId)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.id == null ? 43 : this.id.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lifecycleState == null ? 43 : this.lifecycleState.hashCode());
+ result = (result * PRIME) + (this.name == null ? 43 : this.name.hashCode());
+ result = (result * PRIME) + (this.databaseId == null ? 43 : this.databaseId.hashCode());
+ result = (result * PRIME) + (this.timeCreated == null ? 43 : this.timeCreated.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lifecycleDetails == null ? 43 : this.lifecycleDetails.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.systemTags == null ? 43 : this.systemTags.hashCode());
+ result =
+ (result * PRIME)
+ + (this.compartmentId == null ? 43 : this.compartmentId.hashCode());
+ result = (result * PRIME) + (this.clusterId == null ? 43 : this.clusterId.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/model/DatabaseSnapshotCollection.java b/bmc-database/src/main/java/com/oracle/bmc/database/model/DatabaseSnapshotCollection.java
new file mode 100644
index 00000000000..128de597432
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/model/DatabaseSnapshotCollection.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) 2016, 2026, 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;
+
+/**
+ * Results of database snapshot search
+ * 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 = DatabaseSnapshotCollection.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class DatabaseSnapshotCollection
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"items"})
+ public DatabaseSnapshotCollection(java.util.List items) {
+ super();
+ this.items = items;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** Array of Exadata Database Snapshots */
+ @com.fasterxml.jackson.annotation.JsonProperty("items")
+ private java.util.List items;
+
+ /**
+ * Array of Exadata Database Snapshots
+ *
+ * @param items the value to set
+ * @return this builder
+ */
+ public Builder items(java.util.List items) {
+ this.items = items;
+ this.__explicitlySet__.add("items");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public DatabaseSnapshotCollection build() {
+ DatabaseSnapshotCollection model = new DatabaseSnapshotCollection(this.items);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(DatabaseSnapshotCollection model) {
+ if (model.wasPropertyExplicitlySet("items")) {
+ this.items(model.getItems());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** Array of Exadata Database Snapshots */
+ @com.fasterxml.jackson.annotation.JsonProperty("items")
+ private final java.util.List items;
+
+ /**
+ * Array of Exadata Database Snapshots
+ *
+ * @return the value
+ */
+ public java.util.List getItems() {
+ return items;
+ }
+
+ @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("DatabaseSnapshotCollection(");
+ sb.append("super=").append(super.toString());
+ sb.append("items=").append(String.valueOf(this.items));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof DatabaseSnapshotCollection)) {
+ return false;
+ }
+
+ DatabaseSnapshotCollection other = (DatabaseSnapshotCollection) o;
+ return java.util.Objects.equals(this.items, other.items) && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.items == null ? 43 : this.items.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/model/DatabaseSnapshotSummary.java b/bmc-database/src/main/java/com/oracle/bmc/database/model/DatabaseSnapshotSummary.java
new file mode 100644
index 00000000000..dbe3007ce44
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/model/DatabaseSnapshotSummary.java
@@ -0,0 +1,616 @@
+/**
+ * Copyright (c) 2016, 2026, 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;
+
+/**
+ * Details of the Exadata Database Snapshot.
+ * 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 = DatabaseSnapshotSummary.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class DatabaseSnapshotSummary
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "databaseId",
+ "lifecycleState",
+ "name",
+ "timeCreated",
+ "lifecycleDetails",
+ "freeformTags",
+ "definedTags",
+ "systemTags",
+ "compartmentId",
+ "clusterId"
+ })
+ public DatabaseSnapshotSummary(
+ String id,
+ String databaseId,
+ DatabaseSnapshot.LifecycleState lifecycleState,
+ String name,
+ java.util.Date timeCreated,
+ String lifecycleDetails,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ java.util.Map> systemTags,
+ String compartmentId,
+ String clusterId) {
+ super();
+ this.id = id;
+ this.databaseId = databaseId;
+ this.lifecycleState = lifecycleState;
+ this.name = name;
+ this.timeCreated = timeCreated;
+ this.lifecycleDetails = lifecycleDetails;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.systemTags = systemTags;
+ this.compartmentId = compartmentId;
+ this.clusterId = clusterId;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database Snapshot.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database Snapshot.
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("databaseId")
+ private String databaseId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database.
+ *
+ * @param databaseId the value to set
+ * @return this builder
+ */
+ public Builder databaseId(String databaseId) {
+ this.databaseId = databaseId;
+ this.__explicitlySet__.add("databaseId");
+ return this;
+ }
+ /** The current state of the Exadata Database Snapshot. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private DatabaseSnapshot.LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Exadata Database Snapshot.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder
+ */
+ public Builder lifecycleState(DatabaseSnapshot.LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ this.__explicitlySet__.add("lifecycleState");
+ return this;
+ }
+ /** The user-friendly name for the Database Snapshot. The name should be unique. */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private String name;
+
+ /**
+ * The user-friendly name for the Database Snapshot. The name should be unique.
+ *
+ * @param name the value to set
+ * @return this builder
+ */
+ public Builder name(String name) {
+ this.name = name;
+ this.__explicitlySet__.add("name");
+ return this;
+ }
+ /**
+ * The date and time that the Exadata Database Snapshot was created, as expressed in RFC
+ * 3339 format. For example: 2023-06-27T21:10:29Z
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private java.util.Date timeCreated;
+
+ /**
+ * The date and time that the Exadata Database Snapshot was created, as expressed in RFC
+ * 3339 format. For example: 2023-06-27T21:10:29Z
+ *
+ * @param timeCreated the value to set
+ * @return this builder
+ */
+ public Builder timeCreated(java.util.Date timeCreated) {
+ this.timeCreated = timeCreated;
+ this.__explicitlySet__.add("timeCreated");
+ return this;
+ }
+ /**
+ * Additional information about the current lifecycle state of the Exadata Database
+ * Snapshot.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private String lifecycleDetails;
+
+ /**
+ * Additional information about the current lifecycle state of the Exadata Database
+ * Snapshot.
+ *
+ * @param lifecycleDetails the value to set
+ * @return this builder
+ */
+ public Builder lifecycleDetails(String lifecycleDetails) {
+ this.lifecycleDetails = lifecycleDetails;
+ this.__explicitlySet__.add("lifecycleDetails");
+ 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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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;
+ }
+ /**
+ * System tags for this resource. Each key is predefined and scoped to a namespace. For more
+ * information, see [Resource
+ * Tags](https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("systemTags")
+ private java.util.Map> systemTags;
+
+ /**
+ * System tags for this resource. Each key is predefined and scoped to a namespace. For more
+ * information, see [Resource
+ * Tags](https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ *
+ * @param systemTags the value to set
+ * @return this builder
+ */
+ public Builder systemTags(java.util.Map> systemTags) {
+ this.systemTags = systemTags;
+ this.__explicitlySet__.add("systemTags");
+ return this;
+ }
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private String compartmentId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment.
+ *
+ * @param compartmentId the value to set
+ * @return this builder
+ */
+ public Builder compartmentId(String compartmentId) {
+ this.compartmentId = compartmentId;
+ this.__explicitlySet__.add("compartmentId");
+ return this;
+ }
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * VM cluster.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("clusterId")
+ private String clusterId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * VM cluster.
+ *
+ * @param clusterId the value to set
+ * @return this builder
+ */
+ public Builder clusterId(String clusterId) {
+ this.clusterId = clusterId;
+ this.__explicitlySet__.add("clusterId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public DatabaseSnapshotSummary build() {
+ DatabaseSnapshotSummary model =
+ new DatabaseSnapshotSummary(
+ this.id,
+ this.databaseId,
+ this.lifecycleState,
+ this.name,
+ this.timeCreated,
+ this.lifecycleDetails,
+ this.freeformTags,
+ this.definedTags,
+ this.systemTags,
+ this.compartmentId,
+ this.clusterId);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(DatabaseSnapshotSummary model) {
+ if (model.wasPropertyExplicitlySet("id")) {
+ this.id(model.getId());
+ }
+ if (model.wasPropertyExplicitlySet("databaseId")) {
+ this.databaseId(model.getDatabaseId());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleState")) {
+ this.lifecycleState(model.getLifecycleState());
+ }
+ if (model.wasPropertyExplicitlySet("name")) {
+ this.name(model.getName());
+ }
+ if (model.wasPropertyExplicitlySet("timeCreated")) {
+ this.timeCreated(model.getTimeCreated());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleDetails")) {
+ this.lifecycleDetails(model.getLifecycleDetails());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ if (model.wasPropertyExplicitlySet("systemTags")) {
+ this.systemTags(model.getSystemTags());
+ }
+ if (model.wasPropertyExplicitlySet("compartmentId")) {
+ this.compartmentId(model.getCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("clusterId")) {
+ this.clusterId(model.getClusterId());
+ }
+ 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.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database Snapshot.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private final String id;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database Snapshot.
+ *
+ * @return the value
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("databaseId")
+ private final String databaseId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Exadata Database.
+ *
+ * @return the value
+ */
+ public String getDatabaseId() {
+ return databaseId;
+ }
+
+ /** The current state of the Exadata Database Snapshot. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private final DatabaseSnapshot.LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Exadata Database Snapshot.
+ *
+ * @return the value
+ */
+ public DatabaseSnapshot.LifecycleState getLifecycleState() {
+ return lifecycleState;
+ }
+
+ /** The user-friendly name for the Database Snapshot. The name should be unique. */
+ @com.fasterxml.jackson.annotation.JsonProperty("name")
+ private final String name;
+
+ /**
+ * The user-friendly name for the Database Snapshot. The name should be unique.
+ *
+ * @return the value
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * The date and time that the Exadata Database Snapshot was created, as expressed in RFC 3339
+ * format. For example: 2023-06-27T21:10:29Z
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private final java.util.Date timeCreated;
+
+ /**
+ * The date and time that the Exadata Database Snapshot was created, as expressed in RFC 3339
+ * format. For example: 2023-06-27T21:10:29Z
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCreated() {
+ return timeCreated;
+ }
+
+ /**
+ * Additional information about the current lifecycle state of the Exadata Database Snapshot.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private final String lifecycleDetails;
+
+ /**
+ * Additional information about the current lifecycle state of the Exadata Database Snapshot.
+ *
+ * @return the value
+ */
+ public String getLifecycleDetails() {
+ return lifecycleDetails;
+ }
+
+ /**
+ * 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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ /**
+ * System tags for this resource. Each key is predefined and scoped to a namespace. For more
+ * information, see [Resource
+ * Tags](https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("systemTags")
+ private final java.util.Map> systemTags;
+
+ /**
+ * System tags for this resource. Each key is predefined and scoped to a namespace. For more
+ * information, see [Resource
+ * Tags](https://docs.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ *
+ * @return the value
+ */
+ public java.util.Map> getSystemTags() {
+ return systemTags;
+ }
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private final String compartmentId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment.
+ *
+ * @return the value
+ */
+ public String getCompartmentId() {
+ return compartmentId;
+ }
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VM
+ * cluster.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("clusterId")
+ private final String clusterId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VM
+ * cluster.
+ *
+ * @return the value
+ */
+ public String getClusterId() {
+ return clusterId;
+ }
+
+ @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("DatabaseSnapshotSummary(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", databaseId=").append(String.valueOf(this.databaseId));
+ sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState));
+ sb.append(", name=").append(String.valueOf(this.name));
+ sb.append(", timeCreated=").append(String.valueOf(this.timeCreated));
+ sb.append(", lifecycleDetails=").append(String.valueOf(this.lifecycleDetails));
+ sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
+ sb.append(", definedTags=").append(String.valueOf(this.definedTags));
+ sb.append(", systemTags=").append(String.valueOf(this.systemTags));
+ sb.append(", compartmentId=").append(String.valueOf(this.compartmentId));
+ sb.append(", clusterId=").append(String.valueOf(this.clusterId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof DatabaseSnapshotSummary)) {
+ return false;
+ }
+
+ DatabaseSnapshotSummary other = (DatabaseSnapshotSummary) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.databaseId, other.databaseId)
+ && java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
+ && java.util.Objects.equals(this.name, other.name)
+ && java.util.Objects.equals(this.timeCreated, other.timeCreated)
+ && java.util.Objects.equals(this.lifecycleDetails, other.lifecycleDetails)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && java.util.Objects.equals(this.systemTags, other.systemTags)
+ && java.util.Objects.equals(this.compartmentId, other.compartmentId)
+ && java.util.Objects.equals(this.clusterId, other.clusterId)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.id == null ? 43 : this.id.hashCode());
+ result = (result * PRIME) + (this.databaseId == null ? 43 : this.databaseId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lifecycleState == null ? 43 : this.lifecycleState.hashCode());
+ result = (result * PRIME) + (this.name == null ? 43 : this.name.hashCode());
+ result = (result * PRIME) + (this.timeCreated == null ? 43 : this.timeCreated.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lifecycleDetails == null ? 43 : this.lifecycleDetails.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.systemTags == null ? 43 : this.systemTags.hashCode());
+ result =
+ (result * PRIME)
+ + (this.compartmentId == null ? 43 : this.compartmentId.hashCode());
+ result = (result * PRIME) + (this.clusterId == null ? 43 : this.clusterId.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/model/UpdateDatabaseSnapshotDetails.java b/bmc-database/src/main/java/com/oracle/bmc/database/model/UpdateDatabaseSnapshotDetails.java
new file mode 100644
index 00000000000..5bf35e656f7
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/model/UpdateDatabaseSnapshotDetails.java
@@ -0,0 +1,205 @@
+/**
+ * Copyright (c) 2016, 2026, 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;
+
+/**
+ * Details to update a Database Snapshot.
+ * 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 = UpdateDatabaseSnapshotDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class UpdateDatabaseSnapshotDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"freeformTags", "definedTags"})
+ public UpdateDatabaseSnapshotDetails(
+ java.util.Map freeformTags,
+ java.util.Map> definedTags) {
+ super();
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /**
+ * 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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public UpdateDatabaseSnapshotDetails build() {
+ UpdateDatabaseSnapshotDetails model =
+ new UpdateDatabaseSnapshotDetails(this.freeformTags, this.definedTags);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(UpdateDatabaseSnapshotDetails model) {
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/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.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ @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("UpdateDatabaseSnapshotDetails(");
+ sb.append("super=").append(super.toString());
+ sb.append("freeformTags=").append(String.valueOf(this.freeformTags));
+ sb.append(", definedTags=").append(String.valueOf(this.definedTags));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof UpdateDatabaseSnapshotDetails)) {
+ return false;
+ }
+
+ UpdateDatabaseSnapshotDetails other = (UpdateDatabaseSnapshotDetails) o;
+ return java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
+ result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/requests/CreateDatabaseSnapshotRequest.java b/bmc-database/src/main/java/com/oracle/bmc/database/requests/CreateDatabaseSnapshotRequest.java
new file mode 100644
index 00000000000..a472fdd82ef
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/requests/CreateDatabaseSnapshotRequest.java
@@ -0,0 +1,282 @@
+/**
+ * Copyright (c) 2016, 2026, 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.requests;
+
+import com.oracle.bmc.database.model.*;
+/**
+ * Example: Click here to see how to use
+ * CreateDatabaseSnapshotRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class CreateDatabaseSnapshotRequest
+ extends com.oracle.bmc.requests.BmcRequest<
+ com.oracle.bmc.database.model.CreateDatabaseSnapshotDetails> {
+
+ /** Request to create a database snapshot. */
+ private com.oracle.bmc.database.model.CreateDatabaseSnapshotDetails
+ createDatabaseSnapshotDetails;
+
+ /** Request to create a database snapshot. */
+ public com.oracle.bmc.database.model.CreateDatabaseSnapshotDetails
+ getCreateDatabaseSnapshotDetails() {
+ return createDatabaseSnapshotDetails;
+ }
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after 24
+ * hours, but can be invalidated before then due to conflicting operations (for example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request may be rejected).
+ */
+ private String opcRetryToken;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after 24
+ * hours, but can be invalidated before then due to conflicting operations (for example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request may be rejected).
+ */
+ public String getOpcRetryToken() {
+ return opcRetryToken;
+ }
+ /** Unique identifier for the request. */
+ private String opcRequestId;
+
+ /** Unique identifier for the request. */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ /**
+ * Alternative accessor for the body parameter.
+ *
+ * @return body parameter
+ */
+ @Override
+ @com.oracle.bmc.InternalSdk
+ public com.oracle.bmc.database.model.CreateDatabaseSnapshotDetails getBody$() {
+ return createDatabaseSnapshotDetails;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.requests.BmcRequest.Builder<
+ CreateDatabaseSnapshotRequest,
+ com.oracle.bmc.database.model.CreateDatabaseSnapshotDetails> {
+ private com.oracle.bmc.http.client.RequestInterceptor invocationCallback = null;
+ private com.oracle.bmc.retrier.RetryConfiguration retryConfiguration = null;
+
+ /** Request to create a database snapshot. */
+ private com.oracle.bmc.database.model.CreateDatabaseSnapshotDetails
+ createDatabaseSnapshotDetails = null;
+
+ /**
+ * Request to create a database snapshot.
+ *
+ * @param createDatabaseSnapshotDetails the value to set
+ * @return this builder instance
+ */
+ public Builder createDatabaseSnapshotDetails(
+ com.oracle.bmc.database.model.CreateDatabaseSnapshotDetails
+ createDatabaseSnapshotDetails) {
+ this.createDatabaseSnapshotDetails = createDatabaseSnapshotDetails;
+ return this;
+ }
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations (for example,
+ * if a resource has been deleted and purged from the system, then a retry of the original
+ * creation request may be rejected).
+ */
+ private String opcRetryToken = null;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations (for example,
+ * if a resource has been deleted and purged from the system, then a retry of the original
+ * creation request may be rejected).
+ *
+ * @param opcRetryToken the value to set
+ * @return this builder instance
+ */
+ public Builder opcRetryToken(String opcRetryToken) {
+ this.opcRetryToken = opcRetryToken;
+ return this;
+ }
+
+ /** Unique identifier for the request. */
+ private String opcRequestId = null;
+
+ /**
+ * Unique identifier for the request.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(CreateDatabaseSnapshotRequest o) {
+ createDatabaseSnapshotDetails(o.getCreateDatabaseSnapshotDetails());
+ opcRetryToken(o.getOpcRetryToken());
+ opcRequestId(o.getOpcRequestId());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of CreateDatabaseSnapshotRequest as configured by this builder
+ *
+ * Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ *
This is the preferred method to build an instance.
+ *
+ * @return instance of CreateDatabaseSnapshotRequest
+ */
+ public CreateDatabaseSnapshotRequest build() {
+ CreateDatabaseSnapshotRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Alternative setter for the body parameter.
+ *
+ * @param body the body parameter
+ * @return this builder instance
+ */
+ @com.oracle.bmc.InternalSdk
+ public Builder body$(com.oracle.bmc.database.model.CreateDatabaseSnapshotDetails body) {
+ createDatabaseSnapshotDetails(body);
+ return this;
+ }
+
+ /**
+ * Build the instance of CreateDatabaseSnapshotRequest as configured by this builder
+ *
+ *
Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of CreateDatabaseSnapshotRequest
+ */
+ public CreateDatabaseSnapshotRequest buildWithoutInvocationCallback() {
+ CreateDatabaseSnapshotRequest request = new CreateDatabaseSnapshotRequest();
+ request.createDatabaseSnapshotDetails = createDatabaseSnapshotDetails;
+ request.opcRetryToken = opcRetryToken;
+ request.opcRequestId = opcRequestId;
+ return request;
+ // new CreateDatabaseSnapshotRequest(createDatabaseSnapshotDetails, opcRetryToken,
+ // opcRequestId);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .createDatabaseSnapshotDetails(createDatabaseSnapshotDetails)
+ .opcRetryToken(opcRetryToken)
+ .opcRequestId(opcRequestId);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",createDatabaseSnapshotDetails=")
+ .append(String.valueOf(this.createDatabaseSnapshotDetails));
+ sb.append(",opcRetryToken=").append(String.valueOf(this.opcRetryToken));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CreateDatabaseSnapshotRequest)) {
+ return false;
+ }
+
+ CreateDatabaseSnapshotRequest other = (CreateDatabaseSnapshotRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(
+ this.createDatabaseSnapshotDetails, other.createDatabaseSnapshotDetails)
+ && java.util.Objects.equals(this.opcRetryToken, other.opcRetryToken)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.createDatabaseSnapshotDetails == null
+ ? 43
+ : this.createDatabaseSnapshotDetails.hashCode());
+ result =
+ (result * PRIME)
+ + (this.opcRetryToken == null ? 43 : this.opcRetryToken.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/requests/DeleteDatabaseSnapshotRequest.java b/bmc-database/src/main/java/com/oracle/bmc/database/requests/DeleteDatabaseSnapshotRequest.java
new file mode 100644
index 00000000000..01c36d78769
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/requests/DeleteDatabaseSnapshotRequest.java
@@ -0,0 +1,253 @@
+/**
+ * Copyright (c) 2016, 2026, 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.requests;
+
+import com.oracle.bmc.database.model.*;
+/**
+ * Example: Click here to see how to use
+ * DeleteDatabaseSnapshotRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class DeleteDatabaseSnapshotRequest
+ extends com.oracle.bmc.requests.BmcRequest {
+
+ /**
+ * The Exadata Database Snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ private String databaseSnapshotId;
+
+ /**
+ * The Exadata Database Snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ public String getDatabaseSnapshotId() {
+ return databaseSnapshotId;
+ }
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ private String ifMatch;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ public String getIfMatch() {
+ return ifMatch;
+ }
+ /** Unique identifier for the request. */
+ private String opcRequestId;
+
+ /** Unique identifier for the request. */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.requests.BmcRequest.Builder<
+ DeleteDatabaseSnapshotRequest, java.lang.Void> {
+ private com.oracle.bmc.http.client.RequestInterceptor invocationCallback = null;
+ private com.oracle.bmc.retrier.RetryConfiguration retryConfiguration = null;
+
+ /**
+ * The Exadata Database Snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ private String databaseSnapshotId = null;
+
+ /**
+ * The Exadata Database Snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ *
+ * @param databaseSnapshotId the value to set
+ * @return this builder instance
+ */
+ public Builder databaseSnapshotId(String databaseSnapshotId) {
+ this.databaseSnapshotId = databaseSnapshotId;
+ return this;
+ }
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ */
+ private String ifMatch = null;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ *
+ * @param ifMatch the value to set
+ * @return this builder instance
+ */
+ public Builder ifMatch(String ifMatch) {
+ this.ifMatch = ifMatch;
+ return this;
+ }
+
+ /** Unique identifier for the request. */
+ private String opcRequestId = null;
+
+ /**
+ * Unique identifier for the request.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(DeleteDatabaseSnapshotRequest o) {
+ databaseSnapshotId(o.getDatabaseSnapshotId());
+ ifMatch(o.getIfMatch());
+ opcRequestId(o.getOpcRequestId());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of DeleteDatabaseSnapshotRequest as configured by this builder
+ *
+ * Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ *
This is the preferred method to build an instance.
+ *
+ * @return instance of DeleteDatabaseSnapshotRequest
+ */
+ public DeleteDatabaseSnapshotRequest build() {
+ DeleteDatabaseSnapshotRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Build the instance of DeleteDatabaseSnapshotRequest as configured by this builder
+ *
+ *
Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of DeleteDatabaseSnapshotRequest
+ */
+ public DeleteDatabaseSnapshotRequest buildWithoutInvocationCallback() {
+ DeleteDatabaseSnapshotRequest request = new DeleteDatabaseSnapshotRequest();
+ request.databaseSnapshotId = databaseSnapshotId;
+ request.ifMatch = ifMatch;
+ request.opcRequestId = opcRequestId;
+ return request;
+ // new DeleteDatabaseSnapshotRequest(databaseSnapshotId, ifMatch, opcRequestId);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .databaseSnapshotId(databaseSnapshotId)
+ .ifMatch(ifMatch)
+ .opcRequestId(opcRequestId);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",databaseSnapshotId=").append(String.valueOf(this.databaseSnapshotId));
+ sb.append(",ifMatch=").append(String.valueOf(this.ifMatch));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof DeleteDatabaseSnapshotRequest)) {
+ return false;
+ }
+
+ DeleteDatabaseSnapshotRequest other = (DeleteDatabaseSnapshotRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.databaseSnapshotId, other.databaseSnapshotId)
+ && java.util.Objects.equals(this.ifMatch, other.ifMatch)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.databaseSnapshotId == null
+ ? 43
+ : this.databaseSnapshotId.hashCode());
+ result = (result * PRIME) + (this.ifMatch == null ? 43 : this.ifMatch.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/requests/GetDatabaseSnapshotRequest.java b/bmc-database/src/main/java/com/oracle/bmc/database/requests/GetDatabaseSnapshotRequest.java
new file mode 100644
index 00000000000..98fad1399fa
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/requests/GetDatabaseSnapshotRequest.java
@@ -0,0 +1,204 @@
+/**
+ * Copyright (c) 2016, 2026, 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.requests;
+
+import com.oracle.bmc.database.model.*;
+/**
+ * Example: Click here to see how to use GetDatabaseSnapshotRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class GetDatabaseSnapshotRequest extends com.oracle.bmc.requests.BmcRequest {
+
+ /**
+ * The Exadata Database Snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ private String databaseSnapshotId;
+
+ /**
+ * The Exadata Database Snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ public String getDatabaseSnapshotId() {
+ return databaseSnapshotId;
+ }
+ /** Unique identifier for the request. */
+ private String opcRequestId;
+
+ /** Unique identifier for the request. */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.requests.BmcRequest.Builder<
+ GetDatabaseSnapshotRequest, java.lang.Void> {
+ private com.oracle.bmc.http.client.RequestInterceptor invocationCallback = null;
+ private com.oracle.bmc.retrier.RetryConfiguration retryConfiguration = null;
+
+ /**
+ * The Exadata Database Snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ private String databaseSnapshotId = null;
+
+ /**
+ * The Exadata Database Snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ *
+ * @param databaseSnapshotId the value to set
+ * @return this builder instance
+ */
+ public Builder databaseSnapshotId(String databaseSnapshotId) {
+ this.databaseSnapshotId = databaseSnapshotId;
+ return this;
+ }
+
+ /** Unique identifier for the request. */
+ private String opcRequestId = null;
+
+ /**
+ * Unique identifier for the request.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(GetDatabaseSnapshotRequest o) {
+ databaseSnapshotId(o.getDatabaseSnapshotId());
+ opcRequestId(o.getOpcRequestId());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of GetDatabaseSnapshotRequest as configured by this builder
+ *
+ * Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ *
This is the preferred method to build an instance.
+ *
+ * @return instance of GetDatabaseSnapshotRequest
+ */
+ public GetDatabaseSnapshotRequest build() {
+ GetDatabaseSnapshotRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Build the instance of GetDatabaseSnapshotRequest as configured by this builder
+ *
+ *
Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of GetDatabaseSnapshotRequest
+ */
+ public GetDatabaseSnapshotRequest buildWithoutInvocationCallback() {
+ GetDatabaseSnapshotRequest request = new GetDatabaseSnapshotRequest();
+ request.databaseSnapshotId = databaseSnapshotId;
+ request.opcRequestId = opcRequestId;
+ return request;
+ // new GetDatabaseSnapshotRequest(databaseSnapshotId, opcRequestId);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder().databaseSnapshotId(databaseSnapshotId).opcRequestId(opcRequestId);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",databaseSnapshotId=").append(String.valueOf(this.databaseSnapshotId));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof GetDatabaseSnapshotRequest)) {
+ return false;
+ }
+
+ GetDatabaseSnapshotRequest other = (GetDatabaseSnapshotRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.databaseSnapshotId, other.databaseSnapshotId)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.databaseSnapshotId == null
+ ? 43
+ : this.databaseSnapshotId.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/requests/ListDatabaseSnapshotsRequest.java b/bmc-database/src/main/java/com/oracle/bmc/database/requests/ListDatabaseSnapshotsRequest.java
new file mode 100644
index 00000000000..415fdc8e999
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/requests/ListDatabaseSnapshotsRequest.java
@@ -0,0 +1,532 @@
+/**
+ * Copyright (c) 2016, 2026, 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.requests;
+
+import com.oracle.bmc.database.model.*;
+/**
+ * Example: Click here to see how to use
+ * ListDatabaseSnapshotsRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class ListDatabaseSnapshotsRequest
+ extends com.oracle.bmc.requests.BmcRequest {
+
+ /**
+ * The compartment
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ private String compartmentId;
+
+ /**
+ * The compartment
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ public String getCompartmentId() {
+ return compartmentId;
+ }
+ /** The maximum number of items to return per page. */
+ private Integer limit;
+
+ /** The maximum number of items to return per page. */
+ public Integer getLimit() {
+ return limit;
+ }
+ /** The pagination token to continue listing from. */
+ private String page;
+
+ /** The pagination token to continue listing from. */
+ public String getPage() {
+ return page;
+ }
+ /**
+ * The field to sort by. You can provide one sort order ({@code sortOrder}). Default order for
+ * TIMECREATED is descending. Default order for NAME is ascending. The NAME sort order is case
+ * sensitive.
+ */
+ private SortBy sortBy;
+
+ /**
+ * The field to sort by. You can provide one sort order ({@code sortOrder}). Default order for
+ * TIMECREATED is descending. Default order for NAME is ascending. The NAME sort order is case
+ * sensitive.
+ */
+ public enum SortBy implements com.oracle.bmc.http.internal.BmcEnum {
+ Timecreated("TIMECREATED"),
+ Name("NAME"),
+ ;
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (SortBy v : SortBy.values()) {
+ map.put(v.getValue(), v);
+ }
+ }
+
+ SortBy(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static SortBy create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ throw new IllegalArgumentException("Invalid SortBy: " + key);
+ }
+ };
+
+ /**
+ * The field to sort by. You can provide one sort order ({@code sortOrder}). Default order for
+ * TIMECREATED is descending. Default order for NAME is ascending. The NAME sort order is case
+ * sensitive.
+ */
+ public SortBy getSortBy() {
+ return sortBy;
+ }
+ /**
+ * A filter to return only resources that match the entire name given. The match is not case
+ * sensitive.
+ */
+ private String name;
+
+ /**
+ * A filter to return only resources that match the entire name given. The match is not case
+ * sensitive.
+ */
+ public String getName() {
+ return name;
+ }
+ /** The sort order to use, either ascending ({@code ASC}) or descending ({@code DESC}). */
+ private SortOrder sortOrder;
+
+ /** The sort order to use, either ascending ({@code ASC}) or descending ({@code DESC}). */
+ public enum SortOrder implements com.oracle.bmc.http.internal.BmcEnum {
+ Asc("ASC"),
+ Desc("DESC"),
+ ;
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (SortOrder v : SortOrder.values()) {
+ map.put(v.getValue(), v);
+ }
+ }
+
+ SortOrder(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static SortOrder create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ throw new IllegalArgumentException("Invalid SortOrder: " + key);
+ }
+ };
+
+ /** The sort order to use, either ascending ({@code ASC}) or descending ({@code DESC}). */
+ public SortOrder getSortOrder() {
+ return sortOrder;
+ }
+ /**
+ * A filter to return only Exadata Database Snapshots that match the given lifecycle state
+ * exactly.
+ */
+ private com.oracle.bmc.database.model.DatabaseSnapshot.LifecycleState lifecycleState;
+
+ /**
+ * A filter to return only Exadata Database Snapshots that match the given lifecycle state
+ * exactly.
+ */
+ public com.oracle.bmc.database.model.DatabaseSnapshot.LifecycleState getLifecycleState() {
+ return lifecycleState;
+ }
+ /** A filter to return only Exadata Database Snapshots that match the given Database Id. */
+ private String databaseId;
+
+ /** A filter to return only Exadata Database Snapshots that match the given Database Id. */
+ public String getDatabaseId() {
+ return databaseId;
+ }
+ /** A filter to return only Exadata Database Snapshots that match the given VM cluster. */
+ private String clusterId;
+
+ /** A filter to return only Exadata Database Snapshots that match the given VM cluster. */
+ public String getClusterId() {
+ return clusterId;
+ }
+ /** Unique identifier for the request. */
+ private String opcRequestId;
+
+ /** Unique identifier for the request. */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.requests.BmcRequest.Builder<
+ ListDatabaseSnapshotsRequest, java.lang.Void> {
+ private com.oracle.bmc.http.client.RequestInterceptor invocationCallback = null;
+ private com.oracle.bmc.retrier.RetryConfiguration retryConfiguration = null;
+
+ /**
+ * The compartment
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ private String compartmentId = null;
+
+ /**
+ * The compartment
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ *
+ * @param compartmentId the value to set
+ * @return this builder instance
+ */
+ public Builder compartmentId(String compartmentId) {
+ this.compartmentId = compartmentId;
+ return this;
+ }
+
+ /** The maximum number of items to return per page. */
+ private Integer limit = null;
+
+ /**
+ * The maximum number of items to return per page.
+ *
+ * @param limit the value to set
+ * @return this builder instance
+ */
+ public Builder limit(Integer limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ /** The pagination token to continue listing from. */
+ private String page = null;
+
+ /**
+ * The pagination token to continue listing from.
+ *
+ * @param page the value to set
+ * @return this builder instance
+ */
+ public Builder page(String page) {
+ this.page = page;
+ return this;
+ }
+
+ /**
+ * The field to sort by. You can provide one sort order ({@code sortOrder}). Default order
+ * for TIMECREATED is descending. Default order for NAME is ascending. The NAME sort order
+ * is case sensitive.
+ */
+ private SortBy sortBy = null;
+
+ /**
+ * The field to sort by. You can provide one sort order ({@code sortOrder}). Default order
+ * for TIMECREATED is descending. Default order for NAME is ascending. The NAME sort order
+ * is case sensitive.
+ *
+ * @param sortBy the value to set
+ * @return this builder instance
+ */
+ public Builder sortBy(SortBy sortBy) {
+ this.sortBy = sortBy;
+ return this;
+ }
+
+ /**
+ * A filter to return only resources that match the entire name given. The match is not case
+ * sensitive.
+ */
+ private String name = null;
+
+ /**
+ * A filter to return only resources that match the entire name given. The match is not case
+ * sensitive.
+ *
+ * @param name the value to set
+ * @return this builder instance
+ */
+ public Builder name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /** The sort order to use, either ascending ({@code ASC}) or descending ({@code DESC}). */
+ private SortOrder sortOrder = null;
+
+ /**
+ * The sort order to use, either ascending ({@code ASC}) or descending ({@code DESC}).
+ *
+ * @param sortOrder the value to set
+ * @return this builder instance
+ */
+ public Builder sortOrder(SortOrder sortOrder) {
+ this.sortOrder = sortOrder;
+ return this;
+ }
+
+ /**
+ * A filter to return only Exadata Database Snapshots that match the given lifecycle state
+ * exactly.
+ */
+ private com.oracle.bmc.database.model.DatabaseSnapshot.LifecycleState lifecycleState = null;
+
+ /**
+ * A filter to return only Exadata Database Snapshots that match the given lifecycle state
+ * exactly.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder instance
+ */
+ public Builder lifecycleState(
+ com.oracle.bmc.database.model.DatabaseSnapshot.LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ return this;
+ }
+
+ /** A filter to return only Exadata Database Snapshots that match the given Database Id. */
+ private String databaseId = null;
+
+ /**
+ * A filter to return only Exadata Database Snapshots that match the given Database Id.
+ *
+ * @param databaseId the value to set
+ * @return this builder instance
+ */
+ public Builder databaseId(String databaseId) {
+ this.databaseId = databaseId;
+ return this;
+ }
+
+ /** A filter to return only Exadata Database Snapshots that match the given VM cluster. */
+ private String clusterId = null;
+
+ /**
+ * A filter to return only Exadata Database Snapshots that match the given VM cluster.
+ *
+ * @param clusterId the value to set
+ * @return this builder instance
+ */
+ public Builder clusterId(String clusterId) {
+ this.clusterId = clusterId;
+ return this;
+ }
+
+ /** Unique identifier for the request. */
+ private String opcRequestId = null;
+
+ /**
+ * Unique identifier for the request.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(ListDatabaseSnapshotsRequest o) {
+ compartmentId(o.getCompartmentId());
+ limit(o.getLimit());
+ page(o.getPage());
+ sortBy(o.getSortBy());
+ name(o.getName());
+ sortOrder(o.getSortOrder());
+ lifecycleState(o.getLifecycleState());
+ databaseId(o.getDatabaseId());
+ clusterId(o.getClusterId());
+ opcRequestId(o.getOpcRequestId());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of ListDatabaseSnapshotsRequest as configured by this builder
+ *
+ * Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ *
This is the preferred method to build an instance.
+ *
+ * @return instance of ListDatabaseSnapshotsRequest
+ */
+ public ListDatabaseSnapshotsRequest build() {
+ ListDatabaseSnapshotsRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Build the instance of ListDatabaseSnapshotsRequest as configured by this builder
+ *
+ *
Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of ListDatabaseSnapshotsRequest
+ */
+ public ListDatabaseSnapshotsRequest buildWithoutInvocationCallback() {
+ ListDatabaseSnapshotsRequest request = new ListDatabaseSnapshotsRequest();
+ request.compartmentId = compartmentId;
+ request.limit = limit;
+ request.page = page;
+ request.sortBy = sortBy;
+ request.name = name;
+ request.sortOrder = sortOrder;
+ request.lifecycleState = lifecycleState;
+ request.databaseId = databaseId;
+ request.clusterId = clusterId;
+ request.opcRequestId = opcRequestId;
+ return request;
+ // new ListDatabaseSnapshotsRequest(compartmentId, limit, page, sortBy, name, sortOrder,
+ // lifecycleState, databaseId, clusterId, opcRequestId);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .compartmentId(compartmentId)
+ .limit(limit)
+ .page(page)
+ .sortBy(sortBy)
+ .name(name)
+ .sortOrder(sortOrder)
+ .lifecycleState(lifecycleState)
+ .databaseId(databaseId)
+ .clusterId(clusterId)
+ .opcRequestId(opcRequestId);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",compartmentId=").append(String.valueOf(this.compartmentId));
+ sb.append(",limit=").append(String.valueOf(this.limit));
+ sb.append(",page=").append(String.valueOf(this.page));
+ sb.append(",sortBy=").append(String.valueOf(this.sortBy));
+ sb.append(",name=").append(String.valueOf(this.name));
+ sb.append(",sortOrder=").append(String.valueOf(this.sortOrder));
+ sb.append(",lifecycleState=").append(String.valueOf(this.lifecycleState));
+ sb.append(",databaseId=").append(String.valueOf(this.databaseId));
+ sb.append(",clusterId=").append(String.valueOf(this.clusterId));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof ListDatabaseSnapshotsRequest)) {
+ return false;
+ }
+
+ ListDatabaseSnapshotsRequest other = (ListDatabaseSnapshotsRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.compartmentId, other.compartmentId)
+ && java.util.Objects.equals(this.limit, other.limit)
+ && java.util.Objects.equals(this.page, other.page)
+ && java.util.Objects.equals(this.sortBy, other.sortBy)
+ && java.util.Objects.equals(this.name, other.name)
+ && java.util.Objects.equals(this.sortOrder, other.sortOrder)
+ && java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
+ && java.util.Objects.equals(this.databaseId, other.databaseId)
+ && java.util.Objects.equals(this.clusterId, other.clusterId)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.compartmentId == null ? 43 : this.compartmentId.hashCode());
+ result = (result * PRIME) + (this.limit == null ? 43 : this.limit.hashCode());
+ result = (result * PRIME) + (this.page == null ? 43 : this.page.hashCode());
+ result = (result * PRIME) + (this.sortBy == null ? 43 : this.sortBy.hashCode());
+ result = (result * PRIME) + (this.name == null ? 43 : this.name.hashCode());
+ result = (result * PRIME) + (this.sortOrder == null ? 43 : this.sortOrder.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lifecycleState == null ? 43 : this.lifecycleState.hashCode());
+ result = (result * PRIME) + (this.databaseId == null ? 43 : this.databaseId.hashCode());
+ result = (result * PRIME) + (this.clusterId == null ? 43 : this.clusterId.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/requests/UpdateDatabaseSnapshotRequest.java b/bmc-database/src/main/java/com/oracle/bmc/database/requests/UpdateDatabaseSnapshotRequest.java
new file mode 100644
index 00000000000..08363a0c8b2
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/requests/UpdateDatabaseSnapshotRequest.java
@@ -0,0 +1,368 @@
+/**
+ * Copyright (c) 2016, 2026, 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.requests;
+
+import com.oracle.bmc.database.model.*;
+/**
+ * Example: Click here to see how to use
+ * UpdateDatabaseSnapshotRequest.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class UpdateDatabaseSnapshotRequest
+ extends com.oracle.bmc.requests.BmcRequest<
+ com.oracle.bmc.database.model.UpdateDatabaseSnapshotDetails> {
+
+ /**
+ * The Exadata Database Snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ private String databaseSnapshotId;
+
+ /**
+ * The Exadata Database Snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ public String getDatabaseSnapshotId() {
+ return databaseSnapshotId;
+ }
+ /** Request to update a database snapshot. */
+ private com.oracle.bmc.database.model.UpdateDatabaseSnapshotDetails
+ updateDatabaseSnapshotDetails;
+
+ /** Request to update a database snapshot. */
+ public com.oracle.bmc.database.model.UpdateDatabaseSnapshotDetails
+ getUpdateDatabaseSnapshotDetails() {
+ return updateDatabaseSnapshotDetails;
+ }
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ private String ifMatch;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the {@code
+ * if-match} parameter to the value of the etag from a previous GET or POST response for that
+ * resource. The resource will be updated or deleted only if the etag you provide matches the
+ * resource's current etag value.
+ */
+ public String getIfMatch() {
+ return ifMatch;
+ }
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after 24
+ * hours, but can be invalidated before then due to conflicting operations (for example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request may be rejected).
+ */
+ private String opcRetryToken;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after 24
+ * hours, but can be invalidated before then due to conflicting operations (for example, if a
+ * resource has been deleted and purged from the system, then a retry of the original creation
+ * request may be rejected).
+ */
+ public String getOpcRetryToken() {
+ return opcRetryToken;
+ }
+ /** Unique identifier for the request. */
+ private String opcRequestId;
+
+ /** Unique identifier for the request. */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ /**
+ * Alternative accessor for the body parameter.
+ *
+ * @return body parameter
+ */
+ @Override
+ @com.oracle.bmc.InternalSdk
+ public com.oracle.bmc.database.model.UpdateDatabaseSnapshotDetails getBody$() {
+ return updateDatabaseSnapshotDetails;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.requests.BmcRequest.Builder<
+ UpdateDatabaseSnapshotRequest,
+ com.oracle.bmc.database.model.UpdateDatabaseSnapshotDetails> {
+ private com.oracle.bmc.http.client.RequestInterceptor invocationCallback = null;
+ private com.oracle.bmc.retrier.RetryConfiguration retryConfiguration = null;
+
+ /**
+ * The Exadata Database Snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ */
+ private String databaseSnapshotId = null;
+
+ /**
+ * The Exadata Database Snapshot
+ * [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+ *
+ * @param databaseSnapshotId the value to set
+ * @return this builder instance
+ */
+ public Builder databaseSnapshotId(String databaseSnapshotId) {
+ this.databaseSnapshotId = databaseSnapshotId;
+ return this;
+ }
+
+ /** Request to update a database snapshot. */
+ private com.oracle.bmc.database.model.UpdateDatabaseSnapshotDetails
+ updateDatabaseSnapshotDetails = null;
+
+ /**
+ * Request to update a database snapshot.
+ *
+ * @param updateDatabaseSnapshotDetails the value to set
+ * @return this builder instance
+ */
+ public Builder updateDatabaseSnapshotDetails(
+ com.oracle.bmc.database.model.UpdateDatabaseSnapshotDetails
+ updateDatabaseSnapshotDetails) {
+ this.updateDatabaseSnapshotDetails = updateDatabaseSnapshotDetails;
+ return this;
+ }
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ */
+ private String ifMatch = null;
+
+ /**
+ * For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ * {@code if-match} parameter to the value of the etag from a previous GET or POST response
+ * for that resource. The resource will be updated or deleted only if the etag you provide
+ * matches the resource's current etag value.
+ *
+ * @param ifMatch the value to set
+ * @return this builder instance
+ */
+ public Builder ifMatch(String ifMatch) {
+ this.ifMatch = ifMatch;
+ return this;
+ }
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations (for example,
+ * if a resource has been deleted and purged from the system, then a retry of the original
+ * creation request may be rejected).
+ */
+ private String opcRetryToken = null;
+
+ /**
+ * A token that uniquely identifies a request so it can be retried in case of a timeout or
+ * server error without risk of executing that same action again. Retry tokens expire after
+ * 24 hours, but can be invalidated before then due to conflicting operations (for example,
+ * if a resource has been deleted and purged from the system, then a retry of the original
+ * creation request may be rejected).
+ *
+ * @param opcRetryToken the value to set
+ * @return this builder instance
+ */
+ public Builder opcRetryToken(String opcRetryToken) {
+ this.opcRetryToken = opcRetryToken;
+ return this;
+ }
+
+ /** Unique identifier for the request. */
+ private String opcRequestId = null;
+
+ /**
+ * Unique identifier for the request.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder instance
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * Set the invocation callback for the request to be built.
+ *
+ * @param invocationCallback the invocation callback to be set for the request
+ * @return this builder instance
+ */
+ public Builder invocationCallback(
+ com.oracle.bmc.http.client.RequestInterceptor invocationCallback) {
+ this.invocationCallback = invocationCallback;
+ return this;
+ }
+
+ /**
+ * Set the retry configuration for the request to be built.
+ *
+ * @param retryConfiguration the retry configuration to be used for the request
+ * @return this builder instance
+ */
+ public Builder retryConfiguration(
+ com.oracle.bmc.retrier.RetryConfiguration retryConfiguration) {
+ this.retryConfiguration = retryConfiguration;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ public Builder copy(UpdateDatabaseSnapshotRequest o) {
+ databaseSnapshotId(o.getDatabaseSnapshotId());
+ updateDatabaseSnapshotDetails(o.getUpdateDatabaseSnapshotDetails());
+ ifMatch(o.getIfMatch());
+ opcRetryToken(o.getOpcRetryToken());
+ opcRequestId(o.getOpcRequestId());
+ invocationCallback(o.getInvocationCallback());
+ retryConfiguration(o.getRetryConfiguration());
+ return this;
+ }
+
+ /**
+ * Build the instance of UpdateDatabaseSnapshotRequest as configured by this builder
+ *
+ *
Note that this method takes calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#buildWithoutInvocationCallback} does not.
+ *
+ *
This is the preferred method to build an instance.
+ *
+ * @return instance of UpdateDatabaseSnapshotRequest
+ */
+ public UpdateDatabaseSnapshotRequest build() {
+ UpdateDatabaseSnapshotRequest request = buildWithoutInvocationCallback();
+ request.setInvocationCallback(invocationCallback);
+ request.setRetryConfiguration(retryConfiguration);
+ return request;
+ }
+
+ /**
+ * Alternative setter for the body parameter.
+ *
+ * @param body the body parameter
+ * @return this builder instance
+ */
+ @com.oracle.bmc.InternalSdk
+ public Builder body$(com.oracle.bmc.database.model.UpdateDatabaseSnapshotDetails body) {
+ updateDatabaseSnapshotDetails(body);
+ return this;
+ }
+
+ /**
+ * Build the instance of UpdateDatabaseSnapshotRequest as configured by this builder
+ *
+ *
Note that this method does not take calls to {@link
+ * Builder#invocationCallback(com.oracle.bmc.http.client.RequestInterceptor)} into account,
+ * while the method {@link Builder#build} does
+ *
+ * @return instance of UpdateDatabaseSnapshotRequest
+ */
+ public UpdateDatabaseSnapshotRequest buildWithoutInvocationCallback() {
+ UpdateDatabaseSnapshotRequest request = new UpdateDatabaseSnapshotRequest();
+ request.databaseSnapshotId = databaseSnapshotId;
+ request.updateDatabaseSnapshotDetails = updateDatabaseSnapshotDetails;
+ request.ifMatch = ifMatch;
+ request.opcRetryToken = opcRetryToken;
+ request.opcRequestId = opcRequestId;
+ return request;
+ // new UpdateDatabaseSnapshotRequest(databaseSnapshotId, updateDatabaseSnapshotDetails,
+ // ifMatch, opcRetryToken, opcRequestId);
+ }
+ }
+
+ /**
+ * Return an instance of {@link Builder} that allows you to modify request properties.
+ *
+ * @return instance of {@link Builder} that allows you to modify request properties.
+ */
+ public Builder toBuilder() {
+ return new Builder()
+ .databaseSnapshotId(databaseSnapshotId)
+ .updateDatabaseSnapshotDetails(updateDatabaseSnapshotDetails)
+ .ifMatch(ifMatch)
+ .opcRetryToken(opcRetryToken)
+ .opcRequestId(opcRequestId);
+ }
+
+ /**
+ * Return a new builder for this request object.
+ *
+ * @return builder for the request object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",databaseSnapshotId=").append(String.valueOf(this.databaseSnapshotId));
+ sb.append(",updateDatabaseSnapshotDetails=")
+ .append(String.valueOf(this.updateDatabaseSnapshotDetails));
+ sb.append(",ifMatch=").append(String.valueOf(this.ifMatch));
+ sb.append(",opcRetryToken=").append(String.valueOf(this.opcRetryToken));
+ sb.append(",opcRequestId=").append(String.valueOf(this.opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof UpdateDatabaseSnapshotRequest)) {
+ return false;
+ }
+
+ UpdateDatabaseSnapshotRequest other = (UpdateDatabaseSnapshotRequest) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.databaseSnapshotId, other.databaseSnapshotId)
+ && java.util.Objects.equals(
+ this.updateDatabaseSnapshotDetails, other.updateDatabaseSnapshotDetails)
+ && java.util.Objects.equals(this.ifMatch, other.ifMatch)
+ && java.util.Objects.equals(this.opcRetryToken, other.opcRetryToken)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.databaseSnapshotId == null
+ ? 43
+ : this.databaseSnapshotId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.updateDatabaseSnapshotDetails == null
+ ? 43
+ : this.updateDatabaseSnapshotDetails.hashCode());
+ result = (result * PRIME) + (this.ifMatch == null ? 43 : this.ifMatch.hashCode());
+ result =
+ (result * PRIME)
+ + (this.opcRetryToken == null ? 43 : this.opcRetryToken.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/responses/CreateDatabaseSnapshotResponse.java b/bmc-database/src/main/java/com/oracle/bmc/database/responses/CreateDatabaseSnapshotResponse.java
new file mode 100644
index 00000000000..4e9848f61a8
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/responses/CreateDatabaseSnapshotResponse.java
@@ -0,0 +1,268 @@
+/**
+ * Copyright (c) 2016, 2026, 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.responses;
+
+import com.oracle.bmc.database.model.*;
+
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class CreateDatabaseSnapshotResponse extends com.oracle.bmc.responses.BmcResponse {
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the work
+ * request. Multiple OCID values are returned in a comma-separated list. Use {@link
+ * #getWorkRequest(GetWorkRequestRequest) getWorkRequest} with a work request OCID to track the
+ * status of the request.
+ */
+ private String opcWorkRequestId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the work
+ * request. Multiple OCID values are returned in a comma-separated list. Use {@link
+ * #getWorkRequest(GetWorkRequestRequest) getWorkRequest} with a work request OCID to track the
+ * status of the request.
+ *
+ * @return the value
+ */
+ public String getOpcWorkRequestId() {
+ return opcWorkRequestId;
+ }
+
+ /** For optimistic concurrency control. See {@code if-match}. */
+ private String etag;
+
+ /**
+ * For optimistic concurrency control. See {@code if-match}.
+ *
+ * @return the value
+ */
+ public String getEtag() {
+ return etag;
+ }
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @return the value
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ /** The returned {@code DatabaseSnapshot} instance. */
+ private com.oracle.bmc.database.model.DatabaseSnapshot databaseSnapshot;
+
+ /**
+ * The returned {@code DatabaseSnapshot} instance.
+ *
+ * @return the value
+ */
+ public com.oracle.bmc.database.model.DatabaseSnapshot getDatabaseSnapshot() {
+ return databaseSnapshot;
+ }
+
+ @java.beans.ConstructorProperties({
+ "__httpStatusCode__",
+ "headers",
+ "opcWorkRequestId",
+ "etag",
+ "opcRequestId",
+ "databaseSnapshot"
+ })
+ private CreateDatabaseSnapshotResponse(
+ int __httpStatusCode__,
+ java.util.Map> headers,
+ String opcWorkRequestId,
+ String etag,
+ String opcRequestId,
+ com.oracle.bmc.database.model.DatabaseSnapshot databaseSnapshot) {
+ super(__httpStatusCode__, headers);
+ this.opcWorkRequestId = opcWorkRequestId;
+ this.etag = etag;
+ this.opcRequestId = opcRequestId;
+ this.databaseSnapshot = databaseSnapshot;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.responses.BmcResponse.Builder<
+ CreateDatabaseSnapshotResponse> {
+ private int __httpStatusCode__;
+
+ @Override
+ public Builder __httpStatusCode__(int __httpStatusCode__) {
+ this.__httpStatusCode__ = __httpStatusCode__;
+ return this;
+ }
+
+ private java.util.Map> headers;
+
+ @Override
+ public Builder headers(java.util.Map> headers) {
+ this.headers = headers;
+ return this;
+ }
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * work request. Multiple OCID values are returned in a comma-separated list. Use {@link
+ * #getWorkRequest(GetWorkRequestRequest) getWorkRequest} with a work request OCID to track
+ * the status of the request.
+ */
+ private String opcWorkRequestId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * work request. Multiple OCID values are returned in a comma-separated list. Use {@link
+ * #getWorkRequest(GetWorkRequestRequest) getWorkRequest} with a work request OCID to track
+ * the status of the request.
+ *
+ * @param opcWorkRequestId the value to set
+ * @return this builder
+ */
+ public Builder opcWorkRequestId(String opcWorkRequestId) {
+ this.opcWorkRequestId = opcWorkRequestId;
+ return this;
+ }
+
+ /** For optimistic concurrency control. See {@code if-match}. */
+ private String etag;
+
+ /**
+ * For optimistic concurrency control. See {@code if-match}.
+ *
+ * @param etag the value to set
+ * @return this builder
+ */
+ public Builder etag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /** The returned {@code DatabaseSnapshot} instance. */
+ private com.oracle.bmc.database.model.DatabaseSnapshot databaseSnapshot;
+
+ /**
+ * The returned {@code DatabaseSnapshot} instance.
+ *
+ * @param databaseSnapshot the value to set
+ * @return this builder
+ */
+ public Builder databaseSnapshot(
+ com.oracle.bmc.database.model.DatabaseSnapshot databaseSnapshot) {
+ this.databaseSnapshot = databaseSnapshot;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ @Override
+ public Builder copy(CreateDatabaseSnapshotResponse o) {
+ __httpStatusCode__(o.get__httpStatusCode__());
+ headers(o.getHeaders());
+ opcWorkRequestId(o.getOpcWorkRequestId());
+ etag(o.getEtag());
+ opcRequestId(o.getOpcRequestId());
+ databaseSnapshot(o.getDatabaseSnapshot());
+
+ return this;
+ }
+
+ /**
+ * Build the response object.
+ *
+ * @return the response object
+ */
+ @Override
+ public CreateDatabaseSnapshotResponse build() {
+ return new CreateDatabaseSnapshotResponse(
+ __httpStatusCode__,
+ headers,
+ opcWorkRequestId,
+ etag,
+ opcRequestId,
+ databaseSnapshot);
+ }
+ }
+
+ /**
+ * Return a new builder for this response object.
+ *
+ * @return builder for the response object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",opcWorkRequestId=").append(String.valueOf(opcWorkRequestId));
+ sb.append(",etag=").append(String.valueOf(etag));
+ sb.append(",opcRequestId=").append(String.valueOf(opcRequestId));
+ sb.append(",databaseSnapshot=").append(String.valueOf(databaseSnapshot));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CreateDatabaseSnapshotResponse)) {
+ return false;
+ }
+
+ CreateDatabaseSnapshotResponse other = (CreateDatabaseSnapshotResponse) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.opcWorkRequestId, other.opcWorkRequestId)
+ && java.util.Objects.equals(this.etag, other.etag)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId)
+ && java.util.Objects.equals(this.databaseSnapshot, other.databaseSnapshot);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.opcWorkRequestId == null ? 43 : this.opcWorkRequestId.hashCode());
+ result = (result * PRIME) + (this.etag == null ? 43 : this.etag.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.databaseSnapshot == null ? 43 : this.databaseSnapshot.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/responses/DeleteDatabaseSnapshotResponse.java b/bmc-database/src/main/java/com/oracle/bmc/database/responses/DeleteDatabaseSnapshotResponse.java
new file mode 100644
index 00000000000..9dcc507ba54
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/responses/DeleteDatabaseSnapshotResponse.java
@@ -0,0 +1,194 @@
+/**
+ * Copyright (c) 2016, 2026, 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.responses;
+
+import com.oracle.bmc.database.model.*;
+
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class DeleteDatabaseSnapshotResponse extends com.oracle.bmc.responses.BmcResponse {
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the work
+ * request. Multiple OCID values are returned in a comma-separated list. Use {@link
+ * #getWorkRequest(GetWorkRequestRequest) getWorkRequest} with a work request OCID to track the
+ * status of the request.
+ */
+ private String opcWorkRequestId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the work
+ * request. Multiple OCID values are returned in a comma-separated list. Use {@link
+ * #getWorkRequest(GetWorkRequestRequest) getWorkRequest} with a work request OCID to track the
+ * status of the request.
+ *
+ * @return the value
+ */
+ public String getOpcWorkRequestId() {
+ return opcWorkRequestId;
+ }
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @return the value
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ @java.beans.ConstructorProperties({
+ "__httpStatusCode__",
+ "headers",
+ "opcWorkRequestId",
+ "opcRequestId"
+ })
+ private DeleteDatabaseSnapshotResponse(
+ int __httpStatusCode__,
+ java.util.Map> headers,
+ String opcWorkRequestId,
+ String opcRequestId) {
+ super(__httpStatusCode__, headers);
+ this.opcWorkRequestId = opcWorkRequestId;
+ this.opcRequestId = opcRequestId;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.responses.BmcResponse.Builder<
+ DeleteDatabaseSnapshotResponse> {
+ private int __httpStatusCode__;
+
+ @Override
+ public Builder __httpStatusCode__(int __httpStatusCode__) {
+ this.__httpStatusCode__ = __httpStatusCode__;
+ return this;
+ }
+
+ private java.util.Map> headers;
+
+ @Override
+ public Builder headers(java.util.Map> headers) {
+ this.headers = headers;
+ return this;
+ }
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * work request. Multiple OCID values are returned in a comma-separated list. Use {@link
+ * #getWorkRequest(GetWorkRequestRequest) getWorkRequest} with a work request OCID to track
+ * the status of the request.
+ */
+ private String opcWorkRequestId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * work request. Multiple OCID values are returned in a comma-separated list. Use {@link
+ * #getWorkRequest(GetWorkRequestRequest) getWorkRequest} with a work request OCID to track
+ * the status of the request.
+ *
+ * @param opcWorkRequestId the value to set
+ * @return this builder
+ */
+ public Builder opcWorkRequestId(String opcWorkRequestId) {
+ this.opcWorkRequestId = opcWorkRequestId;
+ return this;
+ }
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ @Override
+ public Builder copy(DeleteDatabaseSnapshotResponse o) {
+ __httpStatusCode__(o.get__httpStatusCode__());
+ headers(o.getHeaders());
+ opcWorkRequestId(o.getOpcWorkRequestId());
+ opcRequestId(o.getOpcRequestId());
+
+ return this;
+ }
+
+ /**
+ * Build the response object.
+ *
+ * @return the response object
+ */
+ @Override
+ public DeleteDatabaseSnapshotResponse build() {
+ return new DeleteDatabaseSnapshotResponse(
+ __httpStatusCode__, headers, opcWorkRequestId, opcRequestId);
+ }
+ }
+
+ /**
+ * Return a new builder for this response object.
+ *
+ * @return builder for the response object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",opcWorkRequestId=").append(String.valueOf(opcWorkRequestId));
+ sb.append(",opcRequestId=").append(String.valueOf(opcRequestId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof DeleteDatabaseSnapshotResponse)) {
+ return false;
+ }
+
+ DeleteDatabaseSnapshotResponse other = (DeleteDatabaseSnapshotResponse) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.opcWorkRequestId, other.opcWorkRequestId)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.opcWorkRequestId == null ? 43 : this.opcWorkRequestId.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/responses/GetDatabaseSnapshotResponse.java b/bmc-database/src/main/java/com/oracle/bmc/database/responses/GetDatabaseSnapshotResponse.java
new file mode 100644
index 00000000000..c9beeb3a5a1
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/responses/GetDatabaseSnapshotResponse.java
@@ -0,0 +1,211 @@
+/**
+ * Copyright (c) 2016, 2026, 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.responses;
+
+import com.oracle.bmc.database.model.*;
+
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class GetDatabaseSnapshotResponse extends com.oracle.bmc.responses.BmcResponse {
+ /** For optimistic concurrency control. See {@code if-match}. */
+ private String etag;
+
+ /**
+ * For optimistic concurrency control. See {@code if-match}.
+ *
+ * @return the value
+ */
+ public String getEtag() {
+ return etag;
+ }
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @return the value
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ /** The returned {@code DatabaseSnapshot} instance. */
+ private com.oracle.bmc.database.model.DatabaseSnapshot databaseSnapshot;
+
+ /**
+ * The returned {@code DatabaseSnapshot} instance.
+ *
+ * @return the value
+ */
+ public com.oracle.bmc.database.model.DatabaseSnapshot getDatabaseSnapshot() {
+ return databaseSnapshot;
+ }
+
+ @java.beans.ConstructorProperties({
+ "__httpStatusCode__",
+ "headers",
+ "etag",
+ "opcRequestId",
+ "databaseSnapshot"
+ })
+ private GetDatabaseSnapshotResponse(
+ int __httpStatusCode__,
+ java.util.Map> headers,
+ String etag,
+ String opcRequestId,
+ com.oracle.bmc.database.model.DatabaseSnapshot databaseSnapshot) {
+ super(__httpStatusCode__, headers);
+ this.etag = etag;
+ this.opcRequestId = opcRequestId;
+ this.databaseSnapshot = databaseSnapshot;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.responses.BmcResponse.Builder {
+ private int __httpStatusCode__;
+
+ @Override
+ public Builder __httpStatusCode__(int __httpStatusCode__) {
+ this.__httpStatusCode__ = __httpStatusCode__;
+ return this;
+ }
+
+ private java.util.Map> headers;
+
+ @Override
+ public Builder headers(java.util.Map> headers) {
+ this.headers = headers;
+ return this;
+ }
+
+ /** For optimistic concurrency control. See {@code if-match}. */
+ private String etag;
+
+ /**
+ * For optimistic concurrency control. See {@code if-match}.
+ *
+ * @param etag the value to set
+ * @return this builder
+ */
+ public Builder etag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /** The returned {@code DatabaseSnapshot} instance. */
+ private com.oracle.bmc.database.model.DatabaseSnapshot databaseSnapshot;
+
+ /**
+ * The returned {@code DatabaseSnapshot} instance.
+ *
+ * @param databaseSnapshot the value to set
+ * @return this builder
+ */
+ public Builder databaseSnapshot(
+ com.oracle.bmc.database.model.DatabaseSnapshot databaseSnapshot) {
+ this.databaseSnapshot = databaseSnapshot;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ @Override
+ public Builder copy(GetDatabaseSnapshotResponse o) {
+ __httpStatusCode__(o.get__httpStatusCode__());
+ headers(o.getHeaders());
+ etag(o.getEtag());
+ opcRequestId(o.getOpcRequestId());
+ databaseSnapshot(o.getDatabaseSnapshot());
+
+ return this;
+ }
+
+ /**
+ * Build the response object.
+ *
+ * @return the response object
+ */
+ @Override
+ public GetDatabaseSnapshotResponse build() {
+ return new GetDatabaseSnapshotResponse(
+ __httpStatusCode__, headers, etag, opcRequestId, databaseSnapshot);
+ }
+ }
+
+ /**
+ * Return a new builder for this response object.
+ *
+ * @return builder for the response object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",etag=").append(String.valueOf(etag));
+ sb.append(",opcRequestId=").append(String.valueOf(opcRequestId));
+ sb.append(",databaseSnapshot=").append(String.valueOf(databaseSnapshot));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof GetDatabaseSnapshotResponse)) {
+ return false;
+ }
+
+ GetDatabaseSnapshotResponse other = (GetDatabaseSnapshotResponse) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.etag, other.etag)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId)
+ && java.util.Objects.equals(this.databaseSnapshot, other.databaseSnapshot);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result = (result * PRIME) + (this.etag == null ? 43 : this.etag.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.databaseSnapshot == null ? 43 : this.databaseSnapshot.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/responses/ListDatabaseSnapshotsResponse.java b/bmc-database/src/main/java/com/oracle/bmc/database/responses/ListDatabaseSnapshotsResponse.java
new file mode 100644
index 00000000000..b5849c75538
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/responses/ListDatabaseSnapshotsResponse.java
@@ -0,0 +1,239 @@
+/**
+ * Copyright (c) 2016, 2026, 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.responses;
+
+import com.oracle.bmc.database.model.*;
+
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class ListDatabaseSnapshotsResponse extends com.oracle.bmc.responses.BmcResponse {
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @return the value
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ /**
+ * For pagination of a list of items. When paging through a list, if this header appears in the
+ * response, then there are additional items still to get. Include this value as the {@code
+ * page} parameter for the subsequent GET request. For information about pagination, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ */
+ private String opcNextPage;
+
+ /**
+ * For pagination of a list of items. When paging through a list, if this header appears in the
+ * response, then there are additional items still to get. Include this value as the {@code
+ * page} parameter for the subsequent GET request. For information about pagination, see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ *
+ * @return the value
+ */
+ public String getOpcNextPage() {
+ return opcNextPage;
+ }
+
+ /** The returned {@code DatabaseSnapshotCollection} instance. */
+ private com.oracle.bmc.database.model.DatabaseSnapshotCollection databaseSnapshotCollection;
+
+ /**
+ * The returned {@code DatabaseSnapshotCollection} instance.
+ *
+ * @return the value
+ */
+ public com.oracle.bmc.database.model.DatabaseSnapshotCollection
+ getDatabaseSnapshotCollection() {
+ return databaseSnapshotCollection;
+ }
+
+ @java.beans.ConstructorProperties({
+ "__httpStatusCode__",
+ "headers",
+ "opcRequestId",
+ "opcNextPage",
+ "databaseSnapshotCollection"
+ })
+ private ListDatabaseSnapshotsResponse(
+ int __httpStatusCode__,
+ java.util.Map> headers,
+ String opcRequestId,
+ String opcNextPage,
+ com.oracle.bmc.database.model.DatabaseSnapshotCollection databaseSnapshotCollection) {
+ super(__httpStatusCode__, headers);
+ this.opcRequestId = opcRequestId;
+ this.opcNextPage = opcNextPage;
+ this.databaseSnapshotCollection = databaseSnapshotCollection;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.responses.BmcResponse.Builder {
+ private int __httpStatusCode__;
+
+ @Override
+ public Builder __httpStatusCode__(int __httpStatusCode__) {
+ this.__httpStatusCode__ = __httpStatusCode__;
+ return this;
+ }
+
+ private java.util.Map> headers;
+
+ @Override
+ public Builder headers(java.util.Map> headers) {
+ this.headers = headers;
+ return this;
+ }
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /**
+ * For pagination of a list of items. When paging through a list, if this header appears in
+ * the response, then there are additional items still to get. Include this value as the
+ * {@code page} parameter for the subsequent GET request. For information about pagination,
+ * see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ */
+ private String opcNextPage;
+
+ /**
+ * For pagination of a list of items. When paging through a list, if this header appears in
+ * the response, then there are additional items still to get. Include this value as the
+ * {@code page} parameter for the subsequent GET request. For information about pagination,
+ * see [List
+ * Pagination](https://docs.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine).
+ *
+ * @param opcNextPage the value to set
+ * @return this builder
+ */
+ public Builder opcNextPage(String opcNextPage) {
+ this.opcNextPage = opcNextPage;
+ return this;
+ }
+
+ /** The returned {@code DatabaseSnapshotCollection} instance. */
+ private com.oracle.bmc.database.model.DatabaseSnapshotCollection databaseSnapshotCollection;
+
+ /**
+ * The returned {@code DatabaseSnapshotCollection} instance.
+ *
+ * @param databaseSnapshotCollection the value to set
+ * @return this builder
+ */
+ public Builder databaseSnapshotCollection(
+ com.oracle.bmc.database.model.DatabaseSnapshotCollection
+ databaseSnapshotCollection) {
+ this.databaseSnapshotCollection = databaseSnapshotCollection;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ @Override
+ public Builder copy(ListDatabaseSnapshotsResponse o) {
+ __httpStatusCode__(o.get__httpStatusCode__());
+ headers(o.getHeaders());
+ opcRequestId(o.getOpcRequestId());
+ opcNextPage(o.getOpcNextPage());
+ databaseSnapshotCollection(o.getDatabaseSnapshotCollection());
+
+ return this;
+ }
+
+ /**
+ * Build the response object.
+ *
+ * @return the response object
+ */
+ @Override
+ public ListDatabaseSnapshotsResponse build() {
+ return new ListDatabaseSnapshotsResponse(
+ __httpStatusCode__,
+ headers,
+ opcRequestId,
+ opcNextPage,
+ databaseSnapshotCollection);
+ }
+ }
+
+ /**
+ * Return a new builder for this response object.
+ *
+ * @return builder for the response object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",opcRequestId=").append(String.valueOf(opcRequestId));
+ sb.append(",opcNextPage=").append(String.valueOf(opcNextPage));
+ sb.append(",databaseSnapshotCollection=")
+ .append(String.valueOf(databaseSnapshotCollection));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof ListDatabaseSnapshotsResponse)) {
+ return false;
+ }
+
+ ListDatabaseSnapshotsResponse other = (ListDatabaseSnapshotsResponse) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId)
+ && java.util.Objects.equals(this.opcNextPage, other.opcNextPage)
+ && java.util.Objects.equals(
+ this.databaseSnapshotCollection, other.databaseSnapshotCollection);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ result = (result * PRIME) + (this.opcNextPage == null ? 43 : this.opcNextPage.hashCode());
+ result =
+ (result * PRIME)
+ + (this.databaseSnapshotCollection == null
+ ? 43
+ : this.databaseSnapshotCollection.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/java/com/oracle/bmc/database/responses/UpdateDatabaseSnapshotResponse.java b/bmc-database/src/main/java/com/oracle/bmc/database/responses/UpdateDatabaseSnapshotResponse.java
new file mode 100644
index 00000000000..f23c9e2ad97
--- /dev/null
+++ b/bmc-database/src/main/java/com/oracle/bmc/database/responses/UpdateDatabaseSnapshotResponse.java
@@ -0,0 +1,212 @@
+/**
+ * Copyright (c) 2016, 2026, 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.responses;
+
+import com.oracle.bmc.database.model.*;
+
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20160918")
+public class UpdateDatabaseSnapshotResponse extends com.oracle.bmc.responses.BmcResponse {
+ /** For optimistic concurrency control. See {@code if-match}. */
+ private String etag;
+
+ /**
+ * For optimistic concurrency control. See {@code if-match}.
+ *
+ * @return the value
+ */
+ public String getEtag() {
+ return etag;
+ }
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @return the value
+ */
+ public String getOpcRequestId() {
+ return opcRequestId;
+ }
+
+ /** The returned {@code DatabaseSnapshot} instance. */
+ private com.oracle.bmc.database.model.DatabaseSnapshot databaseSnapshot;
+
+ /**
+ * The returned {@code DatabaseSnapshot} instance.
+ *
+ * @return the value
+ */
+ public com.oracle.bmc.database.model.DatabaseSnapshot getDatabaseSnapshot() {
+ return databaseSnapshot;
+ }
+
+ @java.beans.ConstructorProperties({
+ "__httpStatusCode__",
+ "headers",
+ "etag",
+ "opcRequestId",
+ "databaseSnapshot"
+ })
+ private UpdateDatabaseSnapshotResponse(
+ int __httpStatusCode__,
+ java.util.Map> headers,
+ String etag,
+ String opcRequestId,
+ com.oracle.bmc.database.model.DatabaseSnapshot databaseSnapshot) {
+ super(__httpStatusCode__, headers);
+ this.etag = etag;
+ this.opcRequestId = opcRequestId;
+ this.databaseSnapshot = databaseSnapshot;
+ }
+
+ public static class Builder
+ implements com.oracle.bmc.responses.BmcResponse.Builder<
+ UpdateDatabaseSnapshotResponse> {
+ private int __httpStatusCode__;
+
+ @Override
+ public Builder __httpStatusCode__(int __httpStatusCode__) {
+ this.__httpStatusCode__ = __httpStatusCode__;
+ return this;
+ }
+
+ private java.util.Map> headers;
+
+ @Override
+ public Builder headers(java.util.Map> headers) {
+ this.headers = headers;
+ return this;
+ }
+
+ /** For optimistic concurrency control. See {@code if-match}. */
+ private String etag;
+
+ /**
+ * For optimistic concurrency control. See {@code if-match}.
+ *
+ * @param etag the value to set
+ * @return this builder
+ */
+ public Builder etag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ */
+ private String opcRequestId;
+
+ /**
+ * Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
+ * particular request, please provide the request ID.
+ *
+ * @param opcRequestId the value to set
+ * @return this builder
+ */
+ public Builder opcRequestId(String opcRequestId) {
+ this.opcRequestId = opcRequestId;
+ return this;
+ }
+
+ /** The returned {@code DatabaseSnapshot} instance. */
+ private com.oracle.bmc.database.model.DatabaseSnapshot databaseSnapshot;
+
+ /**
+ * The returned {@code DatabaseSnapshot} instance.
+ *
+ * @param databaseSnapshot the value to set
+ * @return this builder
+ */
+ public Builder databaseSnapshot(
+ com.oracle.bmc.database.model.DatabaseSnapshot databaseSnapshot) {
+ this.databaseSnapshot = databaseSnapshot;
+ return this;
+ }
+
+ /**
+ * Copy method to populate the builder with values from the given instance.
+ *
+ * @return this builder instance
+ */
+ @Override
+ public Builder copy(UpdateDatabaseSnapshotResponse o) {
+ __httpStatusCode__(o.get__httpStatusCode__());
+ headers(o.getHeaders());
+ etag(o.getEtag());
+ opcRequestId(o.getOpcRequestId());
+ databaseSnapshot(o.getDatabaseSnapshot());
+
+ return this;
+ }
+
+ /**
+ * Build the response object.
+ *
+ * @return the response object
+ */
+ @Override
+ public UpdateDatabaseSnapshotResponse build() {
+ return new UpdateDatabaseSnapshotResponse(
+ __httpStatusCode__, headers, etag, opcRequestId, databaseSnapshot);
+ }
+ }
+
+ /**
+ * Return a new builder for this response object.
+ *
+ * @return builder for the response object
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ @Override
+ public String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder();
+ sb.append("(");
+ sb.append("super=").append(super.toString());
+ sb.append(",etag=").append(String.valueOf(etag));
+ sb.append(",opcRequestId=").append(String.valueOf(opcRequestId));
+ sb.append(",databaseSnapshot=").append(String.valueOf(databaseSnapshot));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof UpdateDatabaseSnapshotResponse)) {
+ return false;
+ }
+
+ UpdateDatabaseSnapshotResponse other = (UpdateDatabaseSnapshotResponse) o;
+ return super.equals(o)
+ && java.util.Objects.equals(this.etag, other.etag)
+ && java.util.Objects.equals(this.opcRequestId, other.opcRequestId)
+ && java.util.Objects.equals(this.databaseSnapshot, other.databaseSnapshot);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result = (result * PRIME) + (this.etag == null ? 43 : this.etag.hashCode());
+ result = (result * PRIME) + (this.opcRequestId == null ? 43 : this.opcRequestId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.databaseSnapshot == null ? 43 : this.databaseSnapshot.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-database/src/main/resources/META-INF/native-image/com.oracle.oci.sdk/oci-java-sdk-database/reflect-config.json b/bmc-database/src/main/resources/META-INF/native-image/com.oracle.oci.sdk/oci-java-sdk-database/reflect-config.json
index 2a13a8ccffd..e9640824e51 100644
--- a/bmc-database/src/main/resources/META-INF/native-image/com.oracle.oci.sdk/oci-java-sdk-database/reflect-config.json
+++ b/bmc-database/src/main/resources/META-INF/native-image/com.oracle.oci.sdk/oci-java-sdk-database/reflect-config.json
@@ -2830,6 +2830,20 @@
"allDeclaredMethods": true,
"allDeclaredConstructors": true
},
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.CloneDatabaseDetails",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.CloneDatabaseDetails$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
{
"condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
"name": "com.oracle.bmc.database.model.CloudAutomationApplyUpdateTimePreference",
@@ -3926,6 +3940,20 @@
"allDeclaredFields": true,
"allDeclaredMethods": true
},
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.CreateCloneDatabaseFromDatabase",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.CreateCloneDatabaseFromDatabase$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
{
"condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
"name": "com.oracle.bmc.database.model.CreateCloudAutonomousVmClusterDetails",
@@ -4288,6 +4316,48 @@
"allDeclaredMethods": true,
"allDeclaredConstructors": true
},
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.CreateDatabaseFromSnapshot",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.CreateDatabaseFromSnapshot$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.CreateDatabaseFromSnapshotDetails",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.CreateDatabaseFromSnapshotDetails$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.CreateDatabaseSnapshotDetails",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.CreateDatabaseSnapshotDetails$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
{
"condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
"name": "com.oracle.bmc.database.model.CreateDatabaseSoftwareImageDetails",
@@ -5538,6 +5608,54 @@
"allDeclaredFields": true,
"allDeclaredMethods": true
},
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.DatabaseSnapshot",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.DatabaseSnapshot$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.DatabaseSnapshot$LifecycleState",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.DatabaseSnapshotCollection",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.DatabaseSnapshotCollection$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.DatabaseSnapshotSummary",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.DatabaseSnapshotSummary$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
{
"condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
"name": "com.oracle.bmc.database.model.DatabaseSoftwareImage",
@@ -11312,6 +11430,20 @@
"allDeclaredFields": true,
"allDeclaredMethods": true
},
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.UpdateDatabaseSnapshotDetails",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
+ "name": "com.oracle.bmc.database.model.UpdateDatabaseSnapshotDetails$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true
+ },
{
"condition" : { "typeReachable" : "com.fasterxml.jackson.databind.ObjectMapper" },
"name": "com.oracle.bmc.database.model.UpdateDatabaseSoftwareImageDetails",
diff --git a/bmc-databasemanagement/pom.xml b/bmc-databasemanagement/pom.xml
index 206db3e375d..87d5ca31731 100644
--- a/bmc-databasemanagement/pom.xml
+++ b/bmc-databasemanagement/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-databasemanagement
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-databasemigration/pom.xml b/bmc-databasemigration/pom.xml
index 475c18ffc05..d1ea59797cd 100644
--- a/bmc-databasemigration/pom.xml
+++ b/bmc-databasemigration/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-databasemigration
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-databasetools/pom.xml b/bmc-databasetools/pom.xml
index 577368d0a1e..b9594a8be01 100644
--- a/bmc-databasetools/pom.xml
+++ b/bmc-databasetools/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-databasetools
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-databasetoolsruntime/pom.xml b/bmc-databasetoolsruntime/pom.xml
index 27e35c2ae38..5c701cdd15f 100644
--- a/bmc-databasetoolsruntime/pom.xml
+++ b/bmc-databasetoolsruntime/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-databasetoolsruntime
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-datacatalog/pom.xml b/bmc-datacatalog/pom.xml
index 8ec40eafe16..0e49b5a1bad 100644
--- a/bmc-datacatalog/pom.xml
+++ b/bmc-datacatalog/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-datacatalog
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-datacc/pom.xml b/bmc-datacc/pom.xml
index 529f3f2b8f1..49b2c62f814 100644
--- a/bmc-datacc/pom.xml
+++ b/bmc-datacc/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-datacc
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-dataflow/pom.xml b/bmc-dataflow/pom.xml
index ce77d3bf5c2..1ec68426e9a 100644
--- a/bmc-dataflow/pom.xml
+++ b/bmc-dataflow/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-dataflow
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-dataintegration/pom.xml b/bmc-dataintegration/pom.xml
index 59995edf03b..9bf25d7c855 100644
--- a/bmc-dataintegration/pom.xml
+++ b/bmc-dataintegration/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-dataintegration
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-datalabelingservice/pom.xml b/bmc-datalabelingservice/pom.xml
index e0597d5fa4a..a49453602fc 100644
--- a/bmc-datalabelingservice/pom.xml
+++ b/bmc-datalabelingservice/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-datalabelingservice
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-datalabelingservicedataplane/pom.xml b/bmc-datalabelingservicedataplane/pom.xml
index 994e09dec91..04584578f97 100644
--- a/bmc-datalabelingservicedataplane/pom.xml
+++ b/bmc-datalabelingservicedataplane/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-datalabelingservicedataplane
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-datasafe/pom.xml b/bmc-datasafe/pom.xml
index 3c756d53d4a..036f691cfc0 100644
--- a/bmc-datasafe/pom.xml
+++ b/bmc-datasafe/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-datasafe
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-datascience/pom.xml b/bmc-datascience/pom.xml
index e2214360ad4..02881a75250 100644
--- a/bmc-datascience/pom.xml
+++ b/bmc-datascience/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-datascience
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-dblm/pom.xml b/bmc-dblm/pom.xml
index 32c3ec07822..01f7404a416 100644
--- a/bmc-dblm/pom.xml
+++ b/bmc-dblm/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-dblm
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-dbmulticloud/pom.xml b/bmc-dbmulticloud/pom.xml
index 1f0eb7bb914..b53b233e712 100644
--- a/bmc-dbmulticloud/pom.xml
+++ b/bmc-dbmulticloud/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-dbmulticloud
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-ddfs/pom.xml b/bmc-ddfs/pom.xml
index 94a24548f22..0abd2fd1f6f 100644
--- a/bmc-ddfs/pom.xml
+++ b/bmc-ddfs/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-ddfs
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-delegateaccesscontrol/pom.xml b/bmc-delegateaccesscontrol/pom.xml
index bb0e95bcf35..748d76a1b6b 100644
--- a/bmc-delegateaccesscontrol/pom.xml
+++ b/bmc-delegateaccesscontrol/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-delegateaccesscontrol
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-demandsignal/pom.xml b/bmc-demandsignal/pom.xml
index 2bae19e1d00..4cdd29811c3 100644
--- a/bmc-demandsignal/pom.xml
+++ b/bmc-demandsignal/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-demandsignal
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-desktops/pom.xml b/bmc-desktops/pom.xml
index a5876c1881a..276071d61dc 100644
--- a/bmc-desktops/pom.xml
+++ b/bmc-desktops/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-desktops
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-devops/pom.xml b/bmc-devops/pom.xml
index 5acf74998a9..1cc2a6d5d2c 100644
--- a/bmc-devops/pom.xml
+++ b/bmc-devops/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-devops
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-dif/pom.xml b/bmc-dif/pom.xml
index 7583aa03447..0e98a4aa277 100644
--- a/bmc-dif/pom.xml
+++ b/bmc-dif/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-dif
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-disasterrecovery/pom.xml b/bmc-disasterrecovery/pom.xml
index bc9b5b2c8c4..199234fbc61 100644
--- a/bmc-disasterrecovery/pom.xml
+++ b/bmc-disasterrecovery/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.98.0
+ 3.99.0
../pom.xml
oci-java-sdk-disasterrecovery
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.98.0
+ 3.99.0
\ No newline at end of file
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/AutomaticDrPlanExecutionSubmissionStatus.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/AutomaticDrPlanExecutionSubmissionStatus.java
index d6adadabaee..67e059ce305 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/AutomaticDrPlanExecutionSubmissionStatus.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/AutomaticDrPlanExecutionSubmissionStatus.java
@@ -6,9 +6,10 @@
/**
* The status of most recent attempt to submit Automatic DR plan execution. -
- * AUTOMATIC_DR_EXECUTION_STARTED_SUCCESSFULLY - Event processed and Automatic DR execution was
- * started successfully. - AUTOMATIC_DR_EXECUTION_BLOCKED_VALIDATION_FAILED - Event processed but
- * Automatic DR execution submission failed due to validation error.
+ * AUTOMATIC_DR_EXECUTION_STARTED_SUCCESSFULLY - The Automatic DR execution was initiated
+ * successfully after processing the event. - AUTOMATIC_DR_EXECUTION_BLOCKED_VALIDATION_FAILED - The
+ * Automatic DR execution was not submitted due to a validation error that prevented successful
+ * processing of the event.
*/
@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220125")
public enum AutomaticDrPlanExecutionSubmissionStatus
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/ComputeInstanceMovableVnicMapping.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/ComputeInstanceMovableVnicMapping.java
index 6a27ae7094e..2262e7495c9 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/ComputeInstanceMovableVnicMapping.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/ComputeInstanceMovableVnicMapping.java
@@ -28,6 +28,7 @@ public final class ComputeInstanceMovableVnicMapping
"destinationSubnetId",
"destinationPrimaryPrivateIpAddress",
"destinationPrimaryPrivateIpHostnameLabel",
+ "destinationReservedPrimaryPrivateIpId",
"destinationReservedPublicIpId",
"destinationNsgIdList"
})
@@ -36,6 +37,7 @@ public ComputeInstanceMovableVnicMapping(
String destinationSubnetId,
String destinationPrimaryPrivateIpAddress,
String destinationPrimaryPrivateIpHostnameLabel,
+ String destinationReservedPrimaryPrivateIpId,
String destinationReservedPublicIpId,
java.util.List destinationNsgIdList) {
super();
@@ -43,6 +45,7 @@ public ComputeInstanceMovableVnicMapping(
this.destinationSubnetId = destinationSubnetId;
this.destinationPrimaryPrivateIpAddress = destinationPrimaryPrivateIpAddress;
this.destinationPrimaryPrivateIpHostnameLabel = destinationPrimaryPrivateIpHostnameLabel;
+ this.destinationReservedPrimaryPrivateIpId = destinationReservedPrimaryPrivateIpId;
this.destinationReservedPublicIpId = destinationReservedPublicIpId;
this.destinationNsgIdList = destinationNsgIdList;
}
@@ -92,6 +95,7 @@ public Builder destinationSubnetId(String destinationSubnetId) {
return this;
}
/**
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this.
* The private IP address to be assigned as the VNIC's primary IP address in the destination
* subnet. This must be a valid IP address in the destination subnet and the IP address must
* be available.
@@ -102,6 +106,7 @@ public Builder destinationSubnetId(String destinationSubnetId) {
private String destinationPrimaryPrivateIpAddress;
/**
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this.
* The private IP address to be assigned as the VNIC's primary IP address in the destination
* subnet. This must be a valid IP address in the destination subnet and the IP address must
* be available.
@@ -118,6 +123,7 @@ public Builder destinationPrimaryPrivateIpAddress(
return this;
}
/**
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this.
* The hostname label to be assigned in the destination subnet for the primary private IP of
* the source VNIC. This label is the hostname portion of the private IP's fully qualified
* domain name (FQDN) (for example, 'myhost1' in the FQDN
@@ -129,6 +135,7 @@ public Builder destinationPrimaryPrivateIpAddress(
private String destinationPrimaryPrivateIpHostnameLabel;
/**
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this.
* The hostname label to be assigned in the destination subnet for the primary private IP of
* the source VNIC. This label is the hostname portion of the private IP's fully qualified
* domain name (FQDN) (for example, 'myhost1' in the FQDN
@@ -146,6 +153,42 @@ public Builder destinationPrimaryPrivateIpHostnameLabel(
this.__explicitlySet__.add("destinationPrimaryPrivateIpHostnameLabel");
return this;
}
+ /**
+ * The OCID of the reserved private IP (IPv4) to be assigned to the compute instance in the
+ * destination region. Do not specify this attribute together with {@code
+ * destinationPrimaryPrivateIpAddress}, {@code destinationPrimaryPrivateIpHostnameLabel}, or
+ * the {@code FsdrDestinationReservedPrimaryPrivateIpId} freeform tag on the source VNIC.
+ *
+ * For legacy compatibility, omit this attribute and use either the legacy explicit
+ * private-IP fields or the freeform tag, but not both configuration mechanisms for the same
+ * source VNIC.
+ *
+ *
Example: {@code ocid1.privateip.oc1..uniqueID}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("destinationReservedPrimaryPrivateIpId")
+ private String destinationReservedPrimaryPrivateIpId;
+
+ /**
+ * The OCID of the reserved private IP (IPv4) to be assigned to the compute instance in the
+ * destination region. Do not specify this attribute together with {@code
+ * destinationPrimaryPrivateIpAddress}, {@code destinationPrimaryPrivateIpHostnameLabel}, or
+ * the {@code FsdrDestinationReservedPrimaryPrivateIpId} freeform tag on the source VNIC.
+ *
+ *
For legacy compatibility, omit this attribute and use either the legacy explicit
+ * private-IP fields or the freeform tag, but not both configuration mechanisms for the same
+ * source VNIC.
+ *
+ *
Example: {@code ocid1.privateip.oc1..uniqueID}
+ *
+ * @param destinationReservedPrimaryPrivateIpId the value to set
+ * @return this builder
+ */
+ public Builder destinationReservedPrimaryPrivateIpId(
+ String destinationReservedPrimaryPrivateIpId) {
+ this.destinationReservedPrimaryPrivateIpId = destinationReservedPrimaryPrivateIpId;
+ this.__explicitlySet__.add("destinationReservedPrimaryPrivateIpId");
+ return this;
+ }
/**
* The OCID of the reserved public IP address to be assigned to the compute instance in the
* destination region.
@@ -205,6 +248,7 @@ public ComputeInstanceMovableVnicMapping build() {
this.destinationSubnetId,
this.destinationPrimaryPrivateIpAddress,
this.destinationPrimaryPrivateIpHostnameLabel,
+ this.destinationReservedPrimaryPrivateIpId,
this.destinationReservedPublicIpId,
this.destinationNsgIdList);
for (String explicitlySetProperty : this.__explicitlySet__) {
@@ -229,6 +273,10 @@ public Builder copy(ComputeInstanceMovableVnicMapping model) {
this.destinationPrimaryPrivateIpHostnameLabel(
model.getDestinationPrimaryPrivateIpHostnameLabel());
}
+ if (model.wasPropertyExplicitlySet("destinationReservedPrimaryPrivateIpId")) {
+ this.destinationReservedPrimaryPrivateIpId(
+ model.getDestinationReservedPrimaryPrivateIpId());
+ }
if (model.wasPropertyExplicitlySet("destinationReservedPublicIpId")) {
this.destinationReservedPublicIpId(model.getDestinationReservedPublicIpId());
}
@@ -287,8 +335,9 @@ public String getDestinationSubnetId() {
}
/**
- * The private IP address to be assigned as the VNIC's primary IP address in the destination
- * subnet. This must be a valid IP address in the destination subnet and the IP address must be
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this. The
+ * private IP address to be assigned as the VNIC's primary IP address in the destination subnet.
+ * This must be a valid IP address in the destination subnet and the IP address must be
* available.
*
*
Example: {@code 10.0.3.3}
@@ -297,8 +346,9 @@ public String getDestinationSubnetId() {
private final String destinationPrimaryPrivateIpAddress;
/**
- * The private IP address to be assigned as the VNIC's primary IP address in the destination
- * subnet. This must be a valid IP address in the destination subnet and the IP address must be
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this. The
+ * private IP address to be assigned as the VNIC's primary IP address in the destination subnet.
+ * This must be a valid IP address in the destination subnet and the IP address must be
* available.
*
*
Example: {@code 10.0.3.3}
@@ -310,7 +360,8 @@ public String getDestinationPrimaryPrivateIpAddress() {
}
/**
- * The hostname label to be assigned in the destination subnet for the primary private IP of the
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this. The
+ * hostname label to be assigned in the destination subnet for the primary private IP of the
* source VNIC. This label is the hostname portion of the private IP's fully qualified domain
* name (FQDN) (for example, 'myhost1' in the FQDN 'myhost1.subnet123.vcn1.oraclevcn.com').
*
@@ -320,7 +371,8 @@ public String getDestinationPrimaryPrivateIpAddress() {
private final String destinationPrimaryPrivateIpHostnameLabel;
/**
- * The hostname label to be assigned in the destination subnet for the primary private IP of the
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this. The
+ * hostname label to be assigned in the destination subnet for the primary private IP of the
* source VNIC. This label is the hostname portion of the private IP's fully qualified domain
* name (FQDN) (for example, 'myhost1' in the FQDN 'myhost1.subnet123.vcn1.oraclevcn.com').
*
@@ -332,6 +384,39 @@ public String getDestinationPrimaryPrivateIpHostnameLabel() {
return destinationPrimaryPrivateIpHostnameLabel;
}
+ /**
+ * The OCID of the reserved private IP (IPv4) to be assigned to the compute instance in the
+ * destination region. Do not specify this attribute together with {@code
+ * destinationPrimaryPrivateIpAddress}, {@code destinationPrimaryPrivateIpHostnameLabel}, or the
+ * {@code FsdrDestinationReservedPrimaryPrivateIpId} freeform tag on the source VNIC.
+ *
+ *
For legacy compatibility, omit this attribute and use either the legacy explicit
+ * private-IP fields or the freeform tag, but not both configuration mechanisms for the same
+ * source VNIC.
+ *
+ *
Example: {@code ocid1.privateip.oc1..uniqueID}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("destinationReservedPrimaryPrivateIpId")
+ private final String destinationReservedPrimaryPrivateIpId;
+
+ /**
+ * The OCID of the reserved private IP (IPv4) to be assigned to the compute instance in the
+ * destination region. Do not specify this attribute together with {@code
+ * destinationPrimaryPrivateIpAddress}, {@code destinationPrimaryPrivateIpHostnameLabel}, or the
+ * {@code FsdrDestinationReservedPrimaryPrivateIpId} freeform tag on the source VNIC.
+ *
+ *
For legacy compatibility, omit this attribute and use either the legacy explicit
+ * private-IP fields or the freeform tag, but not both configuration mechanisms for the same
+ * source VNIC.
+ *
+ *
Example: {@code ocid1.privateip.oc1..uniqueID}
+ *
+ * @return the value
+ */
+ public String getDestinationReservedPrimaryPrivateIpId() {
+ return destinationReservedPrimaryPrivateIpId;
+ }
+
/**
* The OCID of the reserved public IP address to be assigned to the compute instance in the
* destination region.
@@ -397,6 +482,8 @@ public String toString(boolean includeByteArrayContents) {
.append(String.valueOf(this.destinationPrimaryPrivateIpAddress));
sb.append(", destinationPrimaryPrivateIpHostnameLabel=")
.append(String.valueOf(this.destinationPrimaryPrivateIpHostnameLabel));
+ sb.append(", destinationReservedPrimaryPrivateIpId=")
+ .append(String.valueOf(this.destinationReservedPrimaryPrivateIpId));
sb.append(", destinationReservedPublicIpId=")
.append(String.valueOf(this.destinationReservedPublicIpId));
sb.append(", destinationNsgIdList=").append(String.valueOf(this.destinationNsgIdList));
@@ -422,6 +509,9 @@ public boolean equals(Object o) {
&& java.util.Objects.equals(
this.destinationPrimaryPrivateIpHostnameLabel,
other.destinationPrimaryPrivateIpHostnameLabel)
+ && java.util.Objects.equals(
+ this.destinationReservedPrimaryPrivateIpId,
+ other.destinationReservedPrimaryPrivateIpId)
&& java.util.Objects.equals(
this.destinationReservedPublicIpId, other.destinationReservedPublicIpId)
&& java.util.Objects.equals(this.destinationNsgIdList, other.destinationNsgIdList)
@@ -448,6 +538,11 @@ public int hashCode() {
+ (this.destinationPrimaryPrivateIpHostnameLabel == null
? 43
: this.destinationPrimaryPrivateIpHostnameLabel.hashCode());
+ result =
+ (result * PRIME)
+ + (this.destinationReservedPrimaryPrivateIpId == null
+ ? 43
+ : this.destinationReservedPrimaryPrivateIpId.hashCode());
result =
(result * PRIME)
+ (this.destinationReservedPublicIpId == null
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/ComputeInstanceMovableVnicMappingDetails.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/ComputeInstanceMovableVnicMappingDetails.java
index 8b0f295bebe..0979fd12916 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/ComputeInstanceMovableVnicMappingDetails.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/ComputeInstanceMovableVnicMappingDetails.java
@@ -28,6 +28,7 @@ public final class ComputeInstanceMovableVnicMappingDetails
"destinationSubnetId",
"destinationPrimaryPrivateIpAddress",
"destinationPrimaryPrivateIpHostnameLabel",
+ "destinationReservedPrimaryPrivateIpId",
"destinationReservedPublicIpId",
"destinationNsgIdList"
})
@@ -36,6 +37,7 @@ public ComputeInstanceMovableVnicMappingDetails(
String destinationSubnetId,
String destinationPrimaryPrivateIpAddress,
String destinationPrimaryPrivateIpHostnameLabel,
+ String destinationReservedPrimaryPrivateIpId,
String destinationReservedPublicIpId,
java.util.List destinationNsgIdList) {
super();
@@ -43,6 +45,7 @@ public ComputeInstanceMovableVnicMappingDetails(
this.destinationSubnetId = destinationSubnetId;
this.destinationPrimaryPrivateIpAddress = destinationPrimaryPrivateIpAddress;
this.destinationPrimaryPrivateIpHostnameLabel = destinationPrimaryPrivateIpHostnameLabel;
+ this.destinationReservedPrimaryPrivateIpId = destinationReservedPrimaryPrivateIpId;
this.destinationReservedPublicIpId = destinationReservedPublicIpId;
this.destinationNsgIdList = destinationNsgIdList;
}
@@ -92,6 +95,7 @@ public Builder destinationSubnetId(String destinationSubnetId) {
return this;
}
/**
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this.
* The primary private IP address to be assigned to the source VNIC in the destination
* subnet. This IP address must belong to the destination subnet.
*
@@ -101,6 +105,7 @@ public Builder destinationSubnetId(String destinationSubnetId) {
private String destinationPrimaryPrivateIpAddress;
/**
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this.
* The primary private IP address to be assigned to the source VNIC in the destination
* subnet. This IP address must belong to the destination subnet.
*
@@ -116,6 +121,7 @@ public Builder destinationPrimaryPrivateIpAddress(
return this;
}
/**
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this.
* The hostname label to be assigned in the destination subnet for the primary private IP of
* the source VNIC. This label is the hostname portion of the private IP's fully qualified
* domain name (FQDN) (for example, 'myhost1' in the FQDN
@@ -127,6 +133,7 @@ public Builder destinationPrimaryPrivateIpAddress(
private String destinationPrimaryPrivateIpHostnameLabel;
/**
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this.
* The hostname label to be assigned in the destination subnet for the primary private IP of
* the source VNIC. This label is the hostname portion of the private IP's fully qualified
* domain name (FQDN) (for example, 'myhost1' in the FQDN
@@ -144,6 +151,42 @@ public Builder destinationPrimaryPrivateIpHostnameLabel(
this.__explicitlySet__.add("destinationPrimaryPrivateIpHostnameLabel");
return this;
}
+ /**
+ * The OCID of the reserved private IP (IPv4) to be assigned to the compute instance in the
+ * destination region. Do not specify this attribute together with {@code
+ * destinationPrimaryPrivateIpAddress}, {@code destinationPrimaryPrivateIpHostnameLabel}, or
+ * the {@code FsdrDestinationReservedPrimaryPrivateIpId} freeform tag on the source VNIC.
+ *
+ * For legacy compatibility, omit this attribute and use either the legacy explicit
+ * private-IP fields or the freeform tag, but not both configuration mechanisms for the same
+ * source VNIC.
+ *
+ *
Example: {@code ocid1.privateip.oc1..uniqueID}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("destinationReservedPrimaryPrivateIpId")
+ private String destinationReservedPrimaryPrivateIpId;
+
+ /**
+ * The OCID of the reserved private IP (IPv4) to be assigned to the compute instance in the
+ * destination region. Do not specify this attribute together with {@code
+ * destinationPrimaryPrivateIpAddress}, {@code destinationPrimaryPrivateIpHostnameLabel}, or
+ * the {@code FsdrDestinationReservedPrimaryPrivateIpId} freeform tag on the source VNIC.
+ *
+ *
For legacy compatibility, omit this attribute and use either the legacy explicit
+ * private-IP fields or the freeform tag, but not both configuration mechanisms for the same
+ * source VNIC.
+ *
+ *
Example: {@code ocid1.privateip.oc1..uniqueID}
+ *
+ * @param destinationReservedPrimaryPrivateIpId the value to set
+ * @return this builder
+ */
+ public Builder destinationReservedPrimaryPrivateIpId(
+ String destinationReservedPrimaryPrivateIpId) {
+ this.destinationReservedPrimaryPrivateIpId = destinationReservedPrimaryPrivateIpId;
+ this.__explicitlySet__.add("destinationReservedPrimaryPrivateIpId");
+ return this;
+ }
/**
* The OCID of the reserved public IP address to be assigned to the compute instance in the
* destination region.
@@ -203,6 +246,7 @@ public ComputeInstanceMovableVnicMappingDetails build() {
this.destinationSubnetId,
this.destinationPrimaryPrivateIpAddress,
this.destinationPrimaryPrivateIpHostnameLabel,
+ this.destinationReservedPrimaryPrivateIpId,
this.destinationReservedPublicIpId,
this.destinationNsgIdList);
for (String explicitlySetProperty : this.__explicitlySet__) {
@@ -227,6 +271,10 @@ public Builder copy(ComputeInstanceMovableVnicMappingDetails model) {
this.destinationPrimaryPrivateIpHostnameLabel(
model.getDestinationPrimaryPrivateIpHostnameLabel());
}
+ if (model.wasPropertyExplicitlySet("destinationReservedPrimaryPrivateIpId")) {
+ this.destinationReservedPrimaryPrivateIpId(
+ model.getDestinationReservedPrimaryPrivateIpId());
+ }
if (model.wasPropertyExplicitlySet("destinationReservedPublicIpId")) {
this.destinationReservedPublicIpId(model.getDestinationReservedPublicIpId());
}
@@ -285,8 +333,9 @@ public String getDestinationSubnetId() {
}
/**
- * The primary private IP address to be assigned to the source VNIC in the destination subnet.
- * This IP address must belong to the destination subnet.
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this. The
+ * primary private IP address to be assigned to the source VNIC in the destination subnet. This
+ * IP address must belong to the destination subnet.
*
*
Example: {@code 10.0.3.3}
*/
@@ -294,8 +343,9 @@ public String getDestinationSubnetId() {
private final String destinationPrimaryPrivateIpAddress;
/**
- * The primary private IP address to be assigned to the source VNIC in the destination subnet.
- * This IP address must belong to the destination subnet.
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this. The
+ * primary private IP address to be assigned to the source VNIC in the destination subnet. This
+ * IP address must belong to the destination subnet.
*
*
Example: {@code 10.0.3.3}
*
@@ -306,7 +356,8 @@ public String getDestinationPrimaryPrivateIpAddress() {
}
/**
- * The hostname label to be assigned in the destination subnet for the primary private IP of the
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this. The
+ * hostname label to be assigned in the destination subnet for the primary private IP of the
* source VNIC. This label is the hostname portion of the private IP's fully qualified domain
* name (FQDN) (for example, 'myhost1' in the FQDN 'myhost1.subnet123.vcn1.oraclevcn.com').
*
@@ -316,7 +367,8 @@ public String getDestinationPrimaryPrivateIpAddress() {
private final String destinationPrimaryPrivateIpHostnameLabel;
/**
- * The hostname label to be assigned in the destination subnet for the primary private IP of the
+ * Deprecated. Use the 'destinationReservedPrimaryPrivateIpId' attribute instead of this. The
+ * hostname label to be assigned in the destination subnet for the primary private IP of the
* source VNIC. This label is the hostname portion of the private IP's fully qualified domain
* name (FQDN) (for example, 'myhost1' in the FQDN 'myhost1.subnet123.vcn1.oraclevcn.com').
*
@@ -328,6 +380,39 @@ public String getDestinationPrimaryPrivateIpHostnameLabel() {
return destinationPrimaryPrivateIpHostnameLabel;
}
+ /**
+ * The OCID of the reserved private IP (IPv4) to be assigned to the compute instance in the
+ * destination region. Do not specify this attribute together with {@code
+ * destinationPrimaryPrivateIpAddress}, {@code destinationPrimaryPrivateIpHostnameLabel}, or the
+ * {@code FsdrDestinationReservedPrimaryPrivateIpId} freeform tag on the source VNIC.
+ *
+ *
For legacy compatibility, omit this attribute and use either the legacy explicit
+ * private-IP fields or the freeform tag, but not both configuration mechanisms for the same
+ * source VNIC.
+ *
+ *
Example: {@code ocid1.privateip.oc1..uniqueID}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("destinationReservedPrimaryPrivateIpId")
+ private final String destinationReservedPrimaryPrivateIpId;
+
+ /**
+ * The OCID of the reserved private IP (IPv4) to be assigned to the compute instance in the
+ * destination region. Do not specify this attribute together with {@code
+ * destinationPrimaryPrivateIpAddress}, {@code destinationPrimaryPrivateIpHostnameLabel}, or the
+ * {@code FsdrDestinationReservedPrimaryPrivateIpId} freeform tag on the source VNIC.
+ *
+ *
For legacy compatibility, omit this attribute and use either the legacy explicit
+ * private-IP fields or the freeform tag, but not both configuration mechanisms for the same
+ * source VNIC.
+ *
+ *
Example: {@code ocid1.privateip.oc1..uniqueID}
+ *
+ * @return the value
+ */
+ public String getDestinationReservedPrimaryPrivateIpId() {
+ return destinationReservedPrimaryPrivateIpId;
+ }
+
/**
* The OCID of the reserved public IP address to be assigned to the compute instance in the
* destination region.
@@ -393,6 +478,8 @@ public String toString(boolean includeByteArrayContents) {
.append(String.valueOf(this.destinationPrimaryPrivateIpAddress));
sb.append(", destinationPrimaryPrivateIpHostnameLabel=")
.append(String.valueOf(this.destinationPrimaryPrivateIpHostnameLabel));
+ sb.append(", destinationReservedPrimaryPrivateIpId=")
+ .append(String.valueOf(this.destinationReservedPrimaryPrivateIpId));
sb.append(", destinationReservedPublicIpId=")
.append(String.valueOf(this.destinationReservedPublicIpId));
sb.append(", destinationNsgIdList=").append(String.valueOf(this.destinationNsgIdList));
@@ -419,6 +506,9 @@ public boolean equals(Object o) {
&& java.util.Objects.equals(
this.destinationPrimaryPrivateIpHostnameLabel,
other.destinationPrimaryPrivateIpHostnameLabel)
+ && java.util.Objects.equals(
+ this.destinationReservedPrimaryPrivateIpId,
+ other.destinationReservedPrimaryPrivateIpId)
&& java.util.Objects.equals(
this.destinationReservedPublicIpId, other.destinationReservedPublicIpId)
&& java.util.Objects.equals(this.destinationNsgIdList, other.destinationNsgIdList)
@@ -445,6 +535,11 @@ public int hashCode() {
+ (this.destinationPrimaryPrivateIpHostnameLabel == null
? 43
: this.destinationPrimaryPrivateIpHostnameLabel.hashCode());
+ result =
+ (result * PRIME)
+ + (this.destinationReservedPrimaryPrivateIpId == null
+ ? 43
+ : this.destinationReservedPrimaryPrivateIpId.hashCode());
result =
(result * PRIME)
+ (this.destinationReservedPublicIpId == null
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails.java
new file mode 100644
index 00000000000..6563b68331f
--- /dev/null
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails.java
@@ -0,0 +1,141 @@
+/**
+ * Copyright (c) 2016, 2026, 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.disasterrecovery.model;
+
+/**
+ * Create properties for DR drill-specific settings. Use these when the properties for DR drills
+ * differ from the properties used for DR operations such as switchover and failover.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"vnicMappings"})
+ public CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails(
+ java.util.List vnicMappings) {
+ super();
+ this.vnicMappings = vnicMappings;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** A list of compute instance VNIC mappings to use for DR drills. */
+ @com.fasterxml.jackson.annotation.JsonProperty("vnicMappings")
+ private java.util.List vnicMappings;
+
+ /**
+ * A list of compute instance VNIC mappings to use for DR drills.
+ *
+ * @param vnicMappings the value to set
+ * @return this builder
+ */
+ public Builder vnicMappings(
+ java.util.List vnicMappings) {
+ this.vnicMappings = vnicMappings;
+ this.__explicitlySet__.add("vnicMappings");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails build() {
+ CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails model =
+ new CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails(
+ this.vnicMappings);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(
+ CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails model) {
+ if (model.wasPropertyExplicitlySet("vnicMappings")) {
+ this.vnicMappings(model.getVnicMappings());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** A list of compute instance VNIC mappings to use for DR drills. */
+ @com.fasterxml.jackson.annotation.JsonProperty("vnicMappings")
+ private final java.util.List vnicMappings;
+
+ /**
+ * A list of compute instance VNIC mappings to use for DR drills.
+ *
+ * @return the value
+ */
+ public java.util.List getVnicMappings() {
+ return vnicMappings;
+ }
+
+ @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("CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails(");
+ sb.append("super=").append(super.toString());
+ sb.append("vnicMappings=").append(String.valueOf(this.vnicMappings));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails)) {
+ return false;
+ }
+
+ CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails other =
+ (CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails) o;
+ return java.util.Objects.equals(this.vnicMappings, other.vnicMappings)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.vnicMappings == null ? 43 : this.vnicMappings.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberComputeInstanceMovableDetails.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberComputeInstanceMovableDetails.java
index 25ea4e04a03..a39b889f95d 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberComputeInstanceMovableDetails.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberComputeInstanceMovableDetails.java
@@ -36,6 +36,18 @@ public Builder memberId(String memberId) {
this.__explicitlySet__.add("memberId");
return this;
}
+
+ @com.fasterxml.jackson.annotation.JsonProperty("drDrillProperties")
+ private CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails
+ drDrillProperties;
+
+ public Builder drDrillProperties(
+ CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails
+ drDrillProperties) {
+ this.drDrillProperties = drDrillProperties;
+ this.__explicitlySet__.add("drDrillProperties");
+ return this;
+ }
/**
* A flag indicating if the compute instance should be moved to the same fault domain in the
* destination region. The compute instance launch will fail if this flag is set to true and
@@ -172,6 +184,7 @@ public CreateDrProtectionGroupMemberComputeInstanceMovableDetails build() {
CreateDrProtectionGroupMemberComputeInstanceMovableDetails model =
new CreateDrProtectionGroupMemberComputeInstanceMovableDetails(
this.memberId,
+ this.drDrillProperties,
this.isRetainFaultDomain,
this.destinationCapacityReservationId,
this.vnicMappings,
@@ -189,6 +202,9 @@ public Builder copy(CreateDrProtectionGroupMemberComputeInstanceMovableDetails m
if (model.wasPropertyExplicitlySet("memberId")) {
this.memberId(model.getMemberId());
}
+ if (model.wasPropertyExplicitlySet("drDrillProperties")) {
+ this.drDrillProperties(model.getDrDrillProperties());
+ }
if (model.wasPropertyExplicitlySet("isRetainFaultDomain")) {
this.isRetainFaultDomain(model.getIsRetainFaultDomain());
}
@@ -223,6 +239,7 @@ public Builder toBuilder() {
@Deprecated
public CreateDrProtectionGroupMemberComputeInstanceMovableDetails(
String memberId,
+ CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails drDrillProperties,
Boolean isRetainFaultDomain,
String destinationCapacityReservationId,
java.util.List vnicMappings,
@@ -231,6 +248,7 @@ public CreateDrProtectionGroupMemberComputeInstanceMovableDetails(
java.util.List
fileSystemOperations) {
super(memberId);
+ this.drDrillProperties = drDrillProperties;
this.isRetainFaultDomain = isRetainFaultDomain;
this.destinationCapacityReservationId = destinationCapacityReservationId;
this.vnicMappings = vnicMappings;
@@ -239,6 +257,15 @@ public CreateDrProtectionGroupMemberComputeInstanceMovableDetails(
this.fileSystemOperations = fileSystemOperations;
}
+ @com.fasterxml.jackson.annotation.JsonProperty("drDrillProperties")
+ private final CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails
+ drDrillProperties;
+
+ public CreateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails
+ getDrDrillProperties() {
+ return drDrillProperties;
+ }
+
/**
* A flag indicating if the compute instance should be moved to the same fault domain in the
* destination region. The compute instance launch will fail if this flag is set to true and
@@ -368,6 +395,7 @@ public String toString(boolean includeByteArrayContents) {
java.lang.StringBuilder sb = new java.lang.StringBuilder();
sb.append("CreateDrProtectionGroupMemberComputeInstanceMovableDetails(");
sb.append("super=").append(super.toString(includeByteArrayContents));
+ sb.append(", drDrillProperties=").append(String.valueOf(this.drDrillProperties));
sb.append(", isRetainFaultDomain=").append(String.valueOf(this.isRetainFaultDomain));
sb.append(", destinationCapacityReservationId=")
.append(String.valueOf(this.destinationCapacityReservationId));
@@ -392,7 +420,8 @@ public boolean equals(Object o) {
CreateDrProtectionGroupMemberComputeInstanceMovableDetails other =
(CreateDrProtectionGroupMemberComputeInstanceMovableDetails) o;
- return java.util.Objects.equals(this.isRetainFaultDomain, other.isRetainFaultDomain)
+ return java.util.Objects.equals(this.drDrillProperties, other.drDrillProperties)
+ && java.util.Objects.equals(this.isRetainFaultDomain, other.isRetainFaultDomain)
&& java.util.Objects.equals(
this.destinationCapacityReservationId,
other.destinationCapacityReservationId)
@@ -409,6 +438,9 @@ public boolean equals(Object o) {
public int hashCode() {
final int PRIME = 59;
int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.drDrillProperties == null ? 43 : this.drDrillProperties.hashCode());
result =
(result * PRIME)
+ (this.isRetainFaultDomain == null
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberDetails.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberDetails.java
index fd5897c8972..8ca7b37ff10 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberDetails.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberDetails.java
@@ -63,7 +63,10 @@
name = "VOLUME_GROUP"),
@com.fasterxml.jackson.annotation.JsonSubTypes.Type(
value = CreateDrProtectionGroupMemberOkeClusterDetails.class,
- name = "OKE_CLUSTER")
+ name = "OKE_CLUSTER"),
+ @com.fasterxml.jackson.annotation.JsonSubTypes.Type(
+ value = CreateDrProtectionGroupMemberPostgresqlDbSystemDetails.class,
+ name = "POSTGRESQL_DB_SYSTEM")
})
@com.fasterxml.jackson.annotation.JsonFilter(
com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberPostgresqlDbSystemDetails.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberPostgresqlDbSystemDetails.java
new file mode 100644
index 00000000000..9bd094474d3
--- /dev/null
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateDrProtectionGroupMemberPostgresqlDbSystemDetails.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2016, 2026, 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.disasterrecovery.model;
+
+/**
+ * Create properties for an OCI Database with PostgreSQL member.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = CreateDrProtectionGroupMemberPostgresqlDbSystemDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonTypeInfo(
+ use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME,
+ include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,
+ property = "memberType")
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CreateDrProtectionGroupMemberPostgresqlDbSystemDetails
+ extends CreateDrProtectionGroupMemberDetails {
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ @com.fasterxml.jackson.annotation.JsonProperty("memberId")
+ private String memberId;
+
+ public Builder memberId(String memberId) {
+ this.memberId = memberId;
+ this.__explicitlySet__.add("memberId");
+ return this;
+ }
+ /**
+ * The OCID of the peer OCI Database with PostgreSQL from the peer region.
+ *
+ * Example: {@code ocid1.postgresqldbsystem.oc1..uniqueID}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("peerDbSystemId")
+ private String peerDbSystemId;
+
+ /**
+ * The OCID of the peer OCI Database with PostgreSQL from the peer region.
+ *
+ *
Example: {@code ocid1.postgresqldbsystem.oc1..uniqueID}
+ *
+ * @param peerDbSystemId the value to set
+ * @return this builder
+ */
+ public Builder peerDbSystemId(String peerDbSystemId) {
+ this.peerDbSystemId = peerDbSystemId;
+ this.__explicitlySet__.add("peerDbSystemId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public CreateDrProtectionGroupMemberPostgresqlDbSystemDetails build() {
+ CreateDrProtectionGroupMemberPostgresqlDbSystemDetails model =
+ new CreateDrProtectionGroupMemberPostgresqlDbSystemDetails(
+ this.memberId, this.peerDbSystemId);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CreateDrProtectionGroupMemberPostgresqlDbSystemDetails model) {
+ if (model.wasPropertyExplicitlySet("memberId")) {
+ this.memberId(model.getMemberId());
+ }
+ if (model.wasPropertyExplicitlySet("peerDbSystemId")) {
+ this.peerDbSystemId(model.getPeerDbSystemId());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ @Deprecated
+ public CreateDrProtectionGroupMemberPostgresqlDbSystemDetails(
+ String memberId, String peerDbSystemId) {
+ super(memberId);
+ this.peerDbSystemId = peerDbSystemId;
+ }
+
+ /**
+ * The OCID of the peer OCI Database with PostgreSQL from the peer region.
+ *
+ * Example: {@code ocid1.postgresqldbsystem.oc1..uniqueID}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("peerDbSystemId")
+ private final String peerDbSystemId;
+
+ /**
+ * The OCID of the peer OCI Database with PostgreSQL from the peer region.
+ *
+ *
Example: {@code ocid1.postgresqldbsystem.oc1..uniqueID}
+ *
+ * @return the value
+ */
+ public String getPeerDbSystemId() {
+ return peerDbSystemId;
+ }
+
+ @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("CreateDrProtectionGroupMemberPostgresqlDbSystemDetails(");
+ sb.append("super=").append(super.toString(includeByteArrayContents));
+ sb.append(", peerDbSystemId=").append(String.valueOf(this.peerDbSystemId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CreateDrProtectionGroupMemberPostgresqlDbSystemDetails)) {
+ return false;
+ }
+
+ CreateDrProtectionGroupMemberPostgresqlDbSystemDetails other =
+ (CreateDrProtectionGroupMemberPostgresqlDbSystemDetails) o;
+ return java.util.Objects.equals(this.peerDbSystemId, other.peerDbSystemId)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.peerDbSystemId == null ? 43 : this.peerDbSystemId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateOkeClusterBackupConfigDetails.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateOkeClusterBackupConfigDetails.java
index d50c29e1fbc..2f4042f4819 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateOkeClusterBackupConfigDetails.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateOkeClusterBackupConfigDetails.java
@@ -165,17 +165,19 @@ public Builder backupSchedule(String backupSchedule) {
return this;
}
/**
- * Controls the behaviour of image replication across regions. Image replication is enabled
- * by default for DR Protection Groups with a primary role. This property applies to the OKE
- * cluster member in primary region.
+ * Controls the behavior of image replication across regions. Image replication is enabled
+ * by default for DR Protection Groups. This setting applies to the OKE cluster member in
+ * the primary region, and to the standby region only if the image replication secret is
+ * stored in a vault instead of using the default secret.
*/
@com.fasterxml.jackson.annotation.JsonProperty("replicateImages")
private OkeClusterImageReplication replicateImages;
/**
- * Controls the behaviour of image replication across regions. Image replication is enabled
- * by default for DR Protection Groups with a primary role. This property applies to the OKE
- * cluster member in primary region.
+ * Controls the behavior of image replication across regions. Image replication is enabled
+ * by default for DR Protection Groups. This setting applies to the OKE cluster member in
+ * the primary region, and to the standby region only if the image replication secret is
+ * stored in a vault instead of using the default secret.
*
* @param replicateImages the value to set
* @return this builder
@@ -385,17 +387,19 @@ public String getBackupSchedule() {
}
/**
- * Controls the behaviour of image replication across regions. Image replication is enabled by
- * default for DR Protection Groups with a primary role. This property applies to the OKE
- * cluster member in primary region.
+ * Controls the behavior of image replication across regions. Image replication is enabled by
+ * default for DR Protection Groups. This setting applies to the OKE cluster member in the
+ * primary region, and to the standby region only if the image replication secret is stored in a
+ * vault instead of using the default secret.
*/
@com.fasterxml.jackson.annotation.JsonProperty("replicateImages")
private final OkeClusterImageReplication replicateImages;
/**
- * Controls the behaviour of image replication across regions. Image replication is enabled by
- * default for DR Protection Groups with a primary role. This property applies to the OKE
- * cluster member in primary region.
+ * Controls the behavior of image replication across regions. Image replication is enabled by
+ * default for DR Protection Groups. This setting applies to the OKE cluster member in the
+ * primary region, and to the standby region only if the image replication secret is stored in a
+ * vault instead of using the default secret.
*
* @return the value
*/
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateOkeClusterResourceModifierMappingDetails.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateOkeClusterResourceModifierMappingDetails.java
index feb8cdfb579..e19ff20f072 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateOkeClusterResourceModifierMappingDetails.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/CreateOkeClusterResourceModifierMappingDetails.java
@@ -32,12 +32,18 @@ public CreateOkeClusterResourceModifierMappingDetails(String namespace, String c
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
public static class Builder {
- /** The OKE namespace where the config map resides. Example: {@code namespace_string_5} */
+ /**
+ * The OKE namespace where the config map resides.
+ *
+ *
Example: {@code namespace_string_5}
+ */
@com.fasterxml.jackson.annotation.JsonProperty("namespace")
private String namespace;
/**
- * The OKE namespace where the config map resides. Example: {@code namespace_string_5}
+ * The OKE namespace where the config map resides.
+ *
+ *
Example: {@code namespace_string_5}
*
* @param namespace the value to set
* @return this builder
@@ -48,15 +54,17 @@ public Builder namespace(String namespace) {
return this;
}
/**
- * The name of the config map containing resource modification details. Example: {@code
- * resource-modifier}
+ * The name of the config map containing resource modification details.
+ *
+ *
Example: {@code resource-modifier}
*/
@com.fasterxml.jackson.annotation.JsonProperty("configMap")
private String configMap;
/**
- * The name of the config map containing resource modification details. Example: {@code
- * resource-modifier}
+ * The name of the config map containing resource modification details.
+ *
+ *
Example: {@code resource-modifier}
*
* @param configMap the value to set
* @return this builder
@@ -101,12 +109,18 @@ public Builder toBuilder() {
return new Builder().copy(this);
}
- /** The OKE namespace where the config map resides. Example: {@code namespace_string_5} */
+ /**
+ * The OKE namespace where the config map resides.
+ *
+ *
Example: {@code namespace_string_5}
+ */
@com.fasterxml.jackson.annotation.JsonProperty("namespace")
private final String namespace;
/**
- * The OKE namespace where the config map resides. Example: {@code namespace_string_5}
+ * The OKE namespace where the config map resides.
+ *
+ *
Example: {@code namespace_string_5}
*
* @return the value
*/
@@ -115,15 +129,17 @@ public String getNamespace() {
}
/**
- * The name of the config map containing resource modification details. Example: {@code
- * resource-modifier}
+ * The name of the config map containing resource modification details.
+ *
+ *
Example: {@code resource-modifier}
*/
@com.fasterxml.jackson.annotation.JsonProperty("configMap")
private final String configMap;
/**
- * The name of the config map containing resource modification details. Example: {@code
- * resource-modifier}
+ * The name of the config map containing resource modification details.
+ *
+ *
Example: {@code resource-modifier}
*
* @return the value
*/
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrPlanStepType.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrPlanStepType.java
index ed1cedb7223..15e334d64b9 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrPlanStepType.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrPlanStepType.java
@@ -170,8 +170,13 @@
* MySQL DB System start drill. - MYSQL_DB_SYSTEM_START_DRILL - A DR plan step to perform a HeatWave
* MySQL DB System start drill. - MYSQL_DB_SYSTEM_STOP_DRILL_PRECHECK - A precheck step for
* validating HeatWave MySQL DB System stop drill. - MYSQL_DB_SYSTEM_STOP_DRILL - A DR plan step to
- * perform a HeatWave MySQL DB System stop drill. - INTEGRATION_INSTANCE_SWITCHOVER_PRECHECK - A
- * precheck step for validating an integration instance (OIC) for switchover. -
+ * perform a HeatWave MySQL DB System stop drill. - POSTGRESQL_DB_SYSTEM_SWITCHOVER_PRECHECK - A
+ * precheck step for validating OCI Database with PostgreSQL switchover. -
+ * POSTGRESQL_DB_SYSTEM_SWITCHOVER - A DR plan step to perform an OCI Database with PostgreSQL
+ * switchover. - POSTGRESQL_DB_SYSTEM_FAILOVER_PRECHECK - A precheck step for validating OCI
+ * Database with PostgreSQL failover. - POSTGRESQL_DB_SYSTEM_FAILOVER - A DR plan step to perform an
+ * OCI Database with PostgreSQL failover. - INTEGRATION_INSTANCE_SWITCHOVER_PRECHECK - A precheck
+ * step for validating an integration instance (OIC) for switchover. -
* INTEGRATION_INSTANCE_SWITCHOVER - A DR plan step to perform a switchover operation for an
* integration instance (OIC). - INTEGRATION_INSTANCE_FAILOVER_PRECHECK -A precheck step for
* validating an integration instance (OIC) for failover. - INTEGRATION_INSTANCE_FAILOVER - A DR
@@ -330,6 +335,10 @@ public enum DrPlanStepType implements com.oracle.bmc.http.internal.BmcEnum {
MysqlDbSystemStartDrill("MYSQL_DB_SYSTEM_START_DRILL"),
MysqlDbSystemStopDrillPrecheck("MYSQL_DB_SYSTEM_STOP_DRILL_PRECHECK"),
MysqlDbSystemStopDrill("MYSQL_DB_SYSTEM_STOP_DRILL"),
+ PostgresqlDbSystemSwitchoverPrecheck("POSTGRESQL_DB_SYSTEM_SWITCHOVER_PRECHECK"),
+ PostgresqlDbSystemSwitchover("POSTGRESQL_DB_SYSTEM_SWITCHOVER"),
+ PostgresqlDbSystemFailoverPrecheck("POSTGRESQL_DB_SYSTEM_FAILOVER_PRECHECK"),
+ PostgresqlDbSystemFailover("POSTGRESQL_DB_SYSTEM_FAILOVER"),
IntegrationInstanceSwitchoverPrecheck("INTEGRATION_INSTANCE_SWITCHOVER_PRECHECK"),
IntegrationInstanceSwitchover("INTEGRATION_INSTANCE_SWITCHOVER"),
IntegrationInstanceFailoverPrecheck("INTEGRATION_INSTANCE_FAILOVER_PRECHECK"),
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMember.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMember.java
index e4544eb02e8..b7032eb152e 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMember.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMember.java
@@ -52,6 +52,9 @@
@com.fasterxml.jackson.annotation.JsonSubTypes.Type(
value = DrProtectionGroupMemberIntegrationInstance.class,
name = "INTEGRATION_INSTANCE"),
+ @com.fasterxml.jackson.annotation.JsonSubTypes.Type(
+ value = DrProtectionGroupMemberPostgresqlDbSystem.class,
+ name = "POSTGRESQL_DB_SYSTEM"),
@com.fasterxml.jackson.annotation.JsonSubTypes.Type(
value = DrProtectionGroupMemberComputeInstanceMovable.class,
name = "COMPUTE_INSTANCE_MOVABLE"),
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberComputeInstanceDrillProperties.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberComputeInstanceDrillProperties.java
new file mode 100644
index 00000000000..b47457ef263
--- /dev/null
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberComputeInstanceDrillProperties.java
@@ -0,0 +1,138 @@
+/**
+ * Copyright (c) 2016, 2026, 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.disasterrecovery.model;
+
+/**
+ * DR drill-specific properties for a movable compute instance member.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = DrProtectionGroupMemberComputeInstanceDrillProperties.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class DrProtectionGroupMemberComputeInstanceDrillProperties
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"vnicMappings"})
+ public DrProtectionGroupMemberComputeInstanceDrillProperties(
+ java.util.List vnicMappings) {
+ super();
+ this.vnicMappings = vnicMappings;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** A list of compute instance VNIC mappings used for DR drills. */
+ @com.fasterxml.jackson.annotation.JsonProperty("vnicMappings")
+ private java.util.List vnicMappings;
+
+ /**
+ * A list of compute instance VNIC mappings used for DR drills.
+ *
+ * @param vnicMappings the value to set
+ * @return this builder
+ */
+ public Builder vnicMappings(
+ java.util.List vnicMappings) {
+ this.vnicMappings = vnicMappings;
+ this.__explicitlySet__.add("vnicMappings");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public DrProtectionGroupMemberComputeInstanceDrillProperties build() {
+ DrProtectionGroupMemberComputeInstanceDrillProperties model =
+ new DrProtectionGroupMemberComputeInstanceDrillProperties(this.vnicMappings);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(DrProtectionGroupMemberComputeInstanceDrillProperties model) {
+ if (model.wasPropertyExplicitlySet("vnicMappings")) {
+ this.vnicMappings(model.getVnicMappings());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** A list of compute instance VNIC mappings used for DR drills. */
+ @com.fasterxml.jackson.annotation.JsonProperty("vnicMappings")
+ private final java.util.List vnicMappings;
+
+ /**
+ * A list of compute instance VNIC mappings used for DR drills.
+ *
+ * @return the value
+ */
+ public java.util.List getVnicMappings() {
+ return vnicMappings;
+ }
+
+ @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("DrProtectionGroupMemberComputeInstanceDrillProperties(");
+ sb.append("super=").append(super.toString());
+ sb.append("vnicMappings=").append(String.valueOf(this.vnicMappings));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof DrProtectionGroupMemberComputeInstanceDrillProperties)) {
+ return false;
+ }
+
+ DrProtectionGroupMemberComputeInstanceDrillProperties other =
+ (DrProtectionGroupMemberComputeInstanceDrillProperties) o;
+ return java.util.Objects.equals(this.vnicMappings, other.vnicMappings)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.vnicMappings == null ? 43 : this.vnicMappings.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberComputeInstanceMovable.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberComputeInstanceMovable.java
index 90a172927ff..e44ab1462c5 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberComputeInstanceMovable.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberComputeInstanceMovable.java
@@ -99,6 +99,16 @@ public Builder vnicMappings(
this.__explicitlySet__.add("vnicMappings");
return this;
}
+
+ @com.fasterxml.jackson.annotation.JsonProperty("drDrillProperties")
+ private DrProtectionGroupMemberComputeInstanceDrillProperties drDrillProperties;
+
+ public Builder drDrillProperties(
+ DrProtectionGroupMemberComputeInstanceDrillProperties drDrillProperties) {
+ this.drDrillProperties = drDrillProperties;
+ this.__explicitlySet__.add("drDrillProperties");
+ return this;
+ }
/**
* The OCID of a compartment in the destination region in which the compute instance should
* be launched.
@@ -172,6 +182,7 @@ public DrProtectionGroupMemberComputeInstanceMovable build() {
this.isRetainFaultDomain,
this.destinationCapacityReservationId,
this.vnicMappings,
+ this.drDrillProperties,
this.destinationCompartmentId,
this.destinationDedicatedVmHostId,
this.fileSystemOperations);
@@ -195,6 +206,9 @@ public Builder copy(DrProtectionGroupMemberComputeInstanceMovable model) {
if (model.wasPropertyExplicitlySet("vnicMappings")) {
this.vnicMappings(model.getVnicMappings());
}
+ if (model.wasPropertyExplicitlySet("drDrillProperties")) {
+ this.drDrillProperties(model.getDrDrillProperties());
+ }
if (model.wasPropertyExplicitlySet("destinationCompartmentId")) {
this.destinationCompartmentId(model.getDestinationCompartmentId());
}
@@ -223,6 +237,7 @@ public DrProtectionGroupMemberComputeInstanceMovable(
Boolean isRetainFaultDomain,
String destinationCapacityReservationId,
java.util.List vnicMappings,
+ DrProtectionGroupMemberComputeInstanceDrillProperties drDrillProperties,
String destinationCompartmentId,
String destinationDedicatedVmHostId,
java.util.List fileSystemOperations) {
@@ -230,6 +245,7 @@ public DrProtectionGroupMemberComputeInstanceMovable(
this.isRetainFaultDomain = isRetainFaultDomain;
this.destinationCapacityReservationId = destinationCapacityReservationId;
this.vnicMappings = vnicMappings;
+ this.drDrillProperties = drDrillProperties;
this.destinationCompartmentId = destinationCompartmentId;
this.destinationDedicatedVmHostId = destinationDedicatedVmHostId;
this.fileSystemOperations = fileSystemOperations;
@@ -292,6 +308,13 @@ public java.util.List getVnicMappings() {
return vnicMappings;
}
+ @com.fasterxml.jackson.annotation.JsonProperty("drDrillProperties")
+ private final DrProtectionGroupMemberComputeInstanceDrillProperties drDrillProperties;
+
+ public DrProtectionGroupMemberComputeInstanceDrillProperties getDrDrillProperties() {
+ return drDrillProperties;
+ }
+
/**
* The OCID of a compartment in the destination region in which the compute instance should be
* launched.
@@ -366,6 +389,7 @@ public String toString(boolean includeByteArrayContents) {
sb.append(", destinationCapacityReservationId=")
.append(String.valueOf(this.destinationCapacityReservationId));
sb.append(", vnicMappings=").append(String.valueOf(this.vnicMappings));
+ sb.append(", drDrillProperties=").append(String.valueOf(this.drDrillProperties));
sb.append(", destinationCompartmentId=")
.append(String.valueOf(this.destinationCompartmentId));
sb.append(", destinationDedicatedVmHostId=")
@@ -391,6 +415,7 @@ public boolean equals(Object o) {
this.destinationCapacityReservationId,
other.destinationCapacityReservationId)
&& java.util.Objects.equals(this.vnicMappings, other.vnicMappings)
+ && java.util.Objects.equals(this.drDrillProperties, other.drDrillProperties)
&& java.util.Objects.equals(
this.destinationCompartmentId, other.destinationCompartmentId)
&& java.util.Objects.equals(
@@ -414,6 +439,9 @@ public int hashCode() {
? 43
: this.destinationCapacityReservationId.hashCode());
result = (result * PRIME) + (this.vnicMappings == null ? 43 : this.vnicMappings.hashCode());
+ result =
+ (result * PRIME)
+ + (this.drDrillProperties == null ? 43 : this.drDrillProperties.hashCode());
result =
(result * PRIME)
+ (this.destinationCompartmentId == null
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberPostgresqlDbSystem.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberPostgresqlDbSystem.java
new file mode 100644
index 00000000000..18496b88f2a
--- /dev/null
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberPostgresqlDbSystem.java
@@ -0,0 +1,163 @@
+/**
+ * Copyright (c) 2016, 2026, 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.disasterrecovery.model;
+
+/**
+ * The properties for an OCI Database with PostgreSQL member of a DR protection group.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = DrProtectionGroupMemberPostgresqlDbSystem.Builder.class)
+@com.fasterxml.jackson.annotation.JsonTypeInfo(
+ use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME,
+ include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,
+ property = "memberType")
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class DrProtectionGroupMemberPostgresqlDbSystem extends DrProtectionGroupMember {
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ @com.fasterxml.jackson.annotation.JsonProperty("memberId")
+ private String memberId;
+
+ public Builder memberId(String memberId) {
+ this.memberId = memberId;
+ this.__explicitlySet__.add("memberId");
+ return this;
+ }
+ /**
+ * The OCID of the peer OCI Database with PostgreSQL from the peer region.
+ *
+ * Example: {@code ocid1.postgresqldbsystem.oc1..uniqueID}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("peerDbSystemId")
+ private String peerDbSystemId;
+
+ /**
+ * The OCID of the peer OCI Database with PostgreSQL from the peer region.
+ *
+ *
Example: {@code ocid1.postgresqldbsystem.oc1..uniqueID}
+ *
+ * @param peerDbSystemId the value to set
+ * @return this builder
+ */
+ public Builder peerDbSystemId(String peerDbSystemId) {
+ this.peerDbSystemId = peerDbSystemId;
+ this.__explicitlySet__.add("peerDbSystemId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public DrProtectionGroupMemberPostgresqlDbSystem build() {
+ DrProtectionGroupMemberPostgresqlDbSystem model =
+ new DrProtectionGroupMemberPostgresqlDbSystem(
+ this.memberId, this.peerDbSystemId);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(DrProtectionGroupMemberPostgresqlDbSystem model) {
+ if (model.wasPropertyExplicitlySet("memberId")) {
+ this.memberId(model.getMemberId());
+ }
+ if (model.wasPropertyExplicitlySet("peerDbSystemId")) {
+ this.peerDbSystemId(model.getPeerDbSystemId());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ @Deprecated
+ public DrProtectionGroupMemberPostgresqlDbSystem(String memberId, String peerDbSystemId) {
+ super(memberId);
+ this.peerDbSystemId = peerDbSystemId;
+ }
+
+ /**
+ * The OCID of the peer OCI Database with PostgreSQL from the peer region.
+ *
+ * Example: {@code ocid1.postgresqldbsystem.oc1..uniqueID}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("peerDbSystemId")
+ private final String peerDbSystemId;
+
+ /**
+ * The OCID of the peer OCI Database with PostgreSQL from the peer region.
+ *
+ *
Example: {@code ocid1.postgresqldbsystem.oc1..uniqueID}
+ *
+ * @return the value
+ */
+ public String getPeerDbSystemId() {
+ return peerDbSystemId;
+ }
+
+ @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("DrProtectionGroupMemberPostgresqlDbSystem(");
+ sb.append("super=").append(super.toString(includeByteArrayContents));
+ sb.append(", peerDbSystemId=").append(String.valueOf(this.peerDbSystemId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof DrProtectionGroupMemberPostgresqlDbSystem)) {
+ return false;
+ }
+
+ DrProtectionGroupMemberPostgresqlDbSystem other =
+ (DrProtectionGroupMemberPostgresqlDbSystem) o;
+ return java.util.Objects.equals(this.peerDbSystemId, other.peerDbSystemId)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = super.hashCode();
+ result =
+ (result * PRIME)
+ + (this.peerDbSystemId == null ? 43 : this.peerDbSystemId.hashCode());
+ return result;
+ }
+}
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberType.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberType.java
index de5d830e956..ff992a216c8 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberType.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/DrProtectionGroupMemberType.java
@@ -14,8 +14,8 @@
* Serverless. - AUTONOMOUS_CONTAINER_DATABASE - An Oracle Autonomous Container Database. -
* OKE_CLUSTER - OCI Container Engine for Kubernetes(OKE) cluster. - LOAD_BALANCER - A load
* balancer. - NETWORK_LOAD_BALANCER - A network load balancer. - FILE_SYSTEM - A file system. -
- * MYSQL_DB_SYSTEM - A HeatWave MySQL DB system. - INTEGRATION_INSTANCE - An integration instance
- * (OIC).
+ * MYSQL_DB_SYSTEM - A HeatWave MySQL DB system. - POSTGRESQL_DB_SYSTEM - OCI Database with
+ * PostgreSQL. - INTEGRATION_INSTANCE - An integration instance (OIC).
*/
@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20220125")
public enum DrProtectionGroupMemberType implements com.oracle.bmc.http.internal.BmcEnum {
@@ -32,6 +32,7 @@ public enum DrProtectionGroupMemberType implements com.oracle.bmc.http.internal.
OkeCluster("OKE_CLUSTER"),
ObjectStorageBucket("OBJECT_STORAGE_BUCKET"),
MysqlDbSystem("MYSQL_DB_SYSTEM"),
+ PostgresqlDbSystem("POSTGRESQL_DB_SYSTEM"),
IntegrationInstance("INTEGRATION_INSTANCE"),
/**
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/OkeClusterResourceModifierMapping.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/OkeClusterResourceModifierMapping.java
index 439dcb3a0dc..4763c8c2ae3 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/OkeClusterResourceModifierMapping.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/OkeClusterResourceModifierMapping.java
@@ -32,12 +32,18 @@ public OkeClusterResourceModifierMapping(String namespace, String configMap) {
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
public static class Builder {
- /** The OKE namespace where the config map resides. Example: {@code namespace_string_5} */
+ /**
+ * The OKE namespace where the config map resides.
+ *
+ *
Example: {@code namespace_string_5}
+ */
@com.fasterxml.jackson.annotation.JsonProperty("namespace")
private String namespace;
/**
- * The OKE namespace where the config map resides. Example: {@code namespace_string_5}
+ * The OKE namespace where the config map resides.
+ *
+ *
Example: {@code namespace_string_5}
*
* @param namespace the value to set
* @return this builder
@@ -48,15 +54,17 @@ public Builder namespace(String namespace) {
return this;
}
/**
- * The name of the config map containing resource modification details. Example: {@code
- * resource-modifier}
+ * The name of the config map containing resource modification details.
+ *
+ *
Example: {@code resource-modifier}
*/
@com.fasterxml.jackson.annotation.JsonProperty("configMap")
private String configMap;
/**
- * The name of the config map containing resource modification details. Example: {@code
- * resource-modifier}
+ * The name of the config map containing resource modification details.
+ *
+ *
Example: {@code resource-modifier}
*
* @param configMap the value to set
* @return this builder
@@ -100,12 +108,18 @@ public Builder toBuilder() {
return new Builder().copy(this);
}
- /** The OKE namespace where the config map resides. Example: {@code namespace_string_5} */
+ /**
+ * The OKE namespace where the config map resides.
+ *
+ *
Example: {@code namespace_string_5}
+ */
@com.fasterxml.jackson.annotation.JsonProperty("namespace")
private final String namespace;
/**
- * The OKE namespace where the config map resides. Example: {@code namespace_string_5}
+ * The OKE namespace where the config map resides.
+ *
+ *
Example: {@code namespace_string_5}
*
* @return the value
*/
@@ -114,15 +128,17 @@ public String getNamespace() {
}
/**
- * The name of the config map containing resource modification details. Example: {@code
- * resource-modifier}
+ * The name of the config map containing resource modification details.
+ *
+ *
Example: {@code resource-modifier}
*/
@com.fasterxml.jackson.annotation.JsonProperty("configMap")
private final String configMap;
/**
- * The name of the config map containing resource modification details. Example: {@code
- * resource-modifier}
+ * The name of the config map containing resource modification details.
+ *
+ *
Example: {@code resource-modifier}
*
* @return the value
*/
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/RunObjectStoreScriptUserDefinedCustomPrecheckStep.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/RunObjectStoreScriptUserDefinedCustomPrecheckStep.java
index 2f0e3d6accc..f5b692670d6 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/RunObjectStoreScriptUserDefinedCustomPrecheckStep.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/RunObjectStoreScriptUserDefinedCustomPrecheckStep.java
@@ -93,18 +93,20 @@ public Builder objectStorageScriptLocation(
}
/**
* The entire path and arguments for the script that is stored in object store, or inside a
- * compressed archive in object store. Example: {@code /usr/bin/python3.7
- * scripts/start_server.py --port 8080 --env "production" --max-connections 200 --log-level
- * "INFO"}
+ * compressed archive in object store.
+ *
+ *
Example: {@code /usr/bin/python3.7 scripts/start_server.py --port 8080 --env
+ * "production" --max-connections 200 --log-level "INFO"}
*/
@com.fasterxml.jackson.annotation.JsonProperty("scriptCommand")
private String scriptCommand;
/**
* The entire path and arguments for the script that is stored in object store, or inside a
- * compressed archive in object store. Example: {@code /usr/bin/python3.7
- * scripts/start_server.py --port 8080 --env "production" --max-connections 200 --log-level
- * "INFO"}
+ * compressed archive in object store.
+ *
+ *
Example: {@code /usr/bin/python3.7 scripts/start_server.py --port 8080 --env
+ * "production" --max-connections 200 --log-level "INFO"}
*
* @param scriptCommand the value to set
* @return this builder
@@ -116,14 +118,18 @@ public Builder scriptCommand(String scriptCommand) {
}
/**
* The user ID on the instance that will be used to execute the script specified in
- * 'scriptCommand'. Example: {@code opc}
+ * 'scriptCommand'.
+ *
+ *
Example: {@code opc}
*/
@com.fasterxml.jackson.annotation.JsonProperty("runAsUser")
private String runAsUser;
/**
* The user ID on the instance that will be used to execute the script specified in
- * 'scriptCommand'. Example: {@code opc}
+ * 'scriptCommand'.
+ *
+ *
Example: {@code opc}
*
* @param runAsUser the value to set
* @return this builder
@@ -255,18 +261,20 @@ public ObjectStorageScriptLocation getObjectStorageScriptLocation() {
/**
* The entire path and arguments for the script that is stored in object store, or inside a
- * compressed archive in object store. Example: {@code /usr/bin/python3.7
- * scripts/start_server.py --port 8080 --env "production" --max-connections 200 --log-level
- * "INFO"}
+ * compressed archive in object store.
+ *
+ *
Example: {@code /usr/bin/python3.7 scripts/start_server.py --port 8080 --env "production"
+ * --max-connections 200 --log-level "INFO"}
*/
@com.fasterxml.jackson.annotation.JsonProperty("scriptCommand")
private final String scriptCommand;
/**
* The entire path and arguments for the script that is stored in object store, or inside a
- * compressed archive in object store. Example: {@code /usr/bin/python3.7
- * scripts/start_server.py --port 8080 --env "production" --max-connections 200 --log-level
- * "INFO"}
+ * compressed archive in object store.
+ *
+ *
Example: {@code /usr/bin/python3.7 scripts/start_server.py --port 8080 --env "production"
+ * --max-connections 200 --log-level "INFO"}
*
* @return the value
*/
@@ -276,14 +284,18 @@ public String getScriptCommand() {
/**
* The user ID on the instance that will be used to execute the script specified in
- * 'scriptCommand'. Example: {@code opc}
+ * 'scriptCommand'.
+ *
+ *
Example: {@code opc}
*/
@com.fasterxml.jackson.annotation.JsonProperty("runAsUser")
private final String runAsUser;
/**
* The user ID on the instance that will be used to execute the script specified in
- * 'scriptCommand'. Example: {@code opc}
+ * 'scriptCommand'.
+ *
+ *
Example: {@code opc}
*
* @return the value
*/
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/RunObjectStoreScriptUserDefinedStep.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/RunObjectStoreScriptUserDefinedStep.java
index e829b4cc990..5fcdc48b29a 100644
--- a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/RunObjectStoreScriptUserDefinedStep.java
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/RunObjectStoreScriptUserDefinedStep.java
@@ -93,18 +93,20 @@ public Builder objectStorageScriptLocation(
}
/**
* The entire path and arguments for the script that is stored in object store, or inside a
- * compressed archive in object store. Example: {@code /usr/bin/python3.7
- * scripts/start_server.py --port 8080 --env "production" --max-connections 200 --log-level
- * "INFO"}
+ * compressed archive in object store.
+ *
+ *
Example: {@code /usr/bin/python3.7 scripts/start_server.py --port 8080 --env
+ * "production" --max-connections 200 --log-level "INFO"}
*/
@com.fasterxml.jackson.annotation.JsonProperty("scriptCommand")
private String scriptCommand;
/**
* The entire path and arguments for the script that is stored in object store, or inside a
- * compressed archive in object store. Example: {@code /usr/bin/python3.7
- * scripts/start_server.py --port 8080 --env "production" --max-connections 200 --log-level
- * "INFO"}
+ * compressed archive in object store.
+ *
+ *
Example: {@code /usr/bin/python3.7 scripts/start_server.py --port 8080 --env
+ * "production" --max-connections 200 --log-level "INFO"}
*
* @param scriptCommand the value to set
* @return this builder
@@ -116,14 +118,18 @@ public Builder scriptCommand(String scriptCommand) {
}
/**
* The user ID on the instance that will be used to execute the script specified in
- * 'scriptCommand'. Example: {@code opc}
+ * 'scriptCommand'.
+ *
+ *
Example: {@code opc}
*/
@com.fasterxml.jackson.annotation.JsonProperty("runAsUser")
private String runAsUser;
/**
* The user ID on the instance that will be used to execute the script specified in
- * 'scriptCommand'. Example: {@code opc}
+ * 'scriptCommand'.
+ *
+ *
Example: {@code opc}
*
* @param runAsUser the value to set
* @return this builder
@@ -255,18 +261,20 @@ public ObjectStorageScriptLocation getObjectStorageScriptLocation() {
/**
* The entire path and arguments for the script that is stored in object store, or inside a
- * compressed archive in object store. Example: {@code /usr/bin/python3.7
- * scripts/start_server.py --port 8080 --env "production" --max-connections 200 --log-level
- * "INFO"}
+ * compressed archive in object store.
+ *
+ *
Example: {@code /usr/bin/python3.7 scripts/start_server.py --port 8080 --env "production"
+ * --max-connections 200 --log-level "INFO"}
*/
@com.fasterxml.jackson.annotation.JsonProperty("scriptCommand")
private final String scriptCommand;
/**
* The entire path and arguments for the script that is stored in object store, or inside a
- * compressed archive in object store. Example: {@code /usr/bin/python3.7
- * scripts/start_server.py --port 8080 --env "production" --max-connections 200 --log-level
- * "INFO"}
+ * compressed archive in object store.
+ *
+ *
Example: {@code /usr/bin/python3.7 scripts/start_server.py --port 8080 --env "production"
+ * --max-connections 200 --log-level "INFO"}
*
* @return the value
*/
@@ -276,14 +284,18 @@ public String getScriptCommand() {
/**
* The user ID on the instance that will be used to execute the script specified in
- * 'scriptCommand'. Example: {@code opc}
+ * 'scriptCommand'.
+ *
+ *
Example: {@code opc}
*/
@com.fasterxml.jackson.annotation.JsonProperty("runAsUser")
private final String runAsUser;
/**
* The user ID on the instance that will be used to execute the script specified in
- * 'scriptCommand'. Example: {@code opc}
+ * 'scriptCommand'.
+ *
+ *
Example: {@code opc}
*
* @return the value
*/
diff --git a/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/UpdateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails.java b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/UpdateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails.java
new file mode 100644
index 00000000000..7fb18df27b5
--- /dev/null
+++ b/bmc-disasterrecovery/src/main/java/com/oracle/bmc/disasterrecovery/model/UpdateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails.java
@@ -0,0 +1,145 @@
+/**
+ * Copyright (c) 2016, 2026, 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.disasterrecovery.model;
+
+/**
+ * Optional update to DR drill-specific settings for a movable compute instance. If this object is
+ * omitted, the existing drill VNIC mappings are preserved. If provided, vnicMappings is required
+ * and must specify the complete VNIC mapping configuration for DR drills. Partial lists do not
+ * merge with existing mappings. An empty list clears the drill-specific mappings. A non-empty list
+ * is validated and replaces all existing drill-specific mappings. When no drill mappings are
+ * configured, DR drills use the regular recovery vnicMappings.
+ * 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: 20220125")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = UpdateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class UpdateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"vnicMappings"})
+ public UpdateDrProtectionGroupMemberComputeInstanceDrillPropertiesDetails(
+ java.util.List vnicMappings) {
+ super();
+ this.vnicMappings = vnicMappings;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** A list of compute instance VNIC mappings to use for DR drills. */
+ @com.fasterxml.jackson.annotation.JsonProperty("vnicMappings")
+ private java.util.List vnicMappings;
+
+ /**
+ * A list of compute instance VNIC mappings to use for DR drills.
+ *
+ * @param vnicMappings the value to set
+ * @return this builder
+ */
+ public Builder vnicMappings(
+ java.util.List vnicMappings) {
+ this.vnicMappings = vnicMappings;
+ this.__explicitlySet__.add("vnicMappings");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet