freeformTags,
@@ -172,6 +180,10 @@ public UpdateAutonomousDatabaseDetails(
this.dataStorageSizeInGBs = dataStorageSizeInGBs;
this.displayName = displayName;
this.isFreeTier = isFreeTier;
+ this.availabilityDomain = availabilityDomain;
+ this.timeScheduledAdUpdate = timeScheduledAdUpdate;
+ this.isDisableAdUpdateSchedule = isDisableAdUpdateSchedule;
+ this.isScheduleAdUpdateToEarliest = isScheduleAdUpdateToEarliest;
this.adminPassword = adminPassword;
this.dbName = dbName;
this.freeformTags = freeformTags;
@@ -608,6 +620,72 @@ public Builder isFreeTier(Boolean isFreeTier) {
this.__explicitlySet__.add("isFreeTier");
return this;
}
+ /** The Autonomous Database Serverless instance's availability domain. */
+ @com.fasterxml.jackson.annotation.JsonProperty("availabilityDomain")
+ private String availabilityDomain;
+
+ /**
+ * The Autonomous Database Serverless instance's availability domain.
+ *
+ * @param availabilityDomain the value to set
+ * @return this builder
+ */
+ public Builder availabilityDomain(String availabilityDomain) {
+ this.availabilityDomain = availabilityDomain;
+ this.__explicitlySet__.add("availabilityDomain");
+ return this;
+ }
+ /** The date and time when the Autonomous Database availability domain is to be updated. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeScheduledAdUpdate")
+ private java.util.Date timeScheduledAdUpdate;
+
+ /**
+ * The date and time when the Autonomous Database availability domain is to be updated.
+ *
+ * @param timeScheduledAdUpdate the value to set
+ * @return this builder
+ */
+ public Builder timeScheduledAdUpdate(java.util.Date timeScheduledAdUpdate) {
+ this.timeScheduledAdUpdate = timeScheduledAdUpdate;
+ this.__explicitlySet__.add("timeScheduledAdUpdate");
+ return this;
+ }
+ /**
+ * True, if you want to disable Autonomous Database availability domain scheduled update.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("isDisableAdUpdateSchedule")
+ private Boolean isDisableAdUpdateSchedule;
+
+ /**
+ * True, if you want to disable Autonomous Database availability domain scheduled update.
+ *
+ * @param isDisableAdUpdateSchedule the value to set
+ * @return this builder
+ */
+ public Builder isDisableAdUpdateSchedule(Boolean isDisableAdUpdateSchedule) {
+ this.isDisableAdUpdateSchedule = isDisableAdUpdateSchedule;
+ this.__explicitlySet__.add("isDisableAdUpdateSchedule");
+ return this;
+ }
+ /**
+ * True, if you want to schedule Autonomous Database availability domain update to the
+ * earliest available time.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("isScheduleAdUpdateToEarliest")
+ private Boolean isScheduleAdUpdateToEarliest;
+
+ /**
+ * True, if you want to schedule Autonomous Database availability domain update to the
+ * earliest available time.
+ *
+ * @param isScheduleAdUpdateToEarliest the value to set
+ * @return this builder
+ */
+ public Builder isScheduleAdUpdateToEarliest(Boolean isScheduleAdUpdateToEarliest) {
+ this.isScheduleAdUpdateToEarliest = isScheduleAdUpdateToEarliest;
+ this.__explicitlySet__.add("isScheduleAdUpdateToEarliest");
+ return this;
+ }
/**
* The password must be between 12 and 30 characters long, and must contain at least 1
* uppercase, 1 lowercase, and 1 numeric character. It cannot contain the double quote
@@ -1994,6 +2072,10 @@ public UpdateAutonomousDatabaseDetails build() {
this.dataStorageSizeInGBs,
this.displayName,
this.isFreeTier,
+ this.availabilityDomain,
+ this.timeScheduledAdUpdate,
+ this.isDisableAdUpdateSchedule,
+ this.isScheduleAdUpdateToEarliest,
this.adminPassword,
this.dbName,
this.freeformTags,
@@ -2091,6 +2173,18 @@ public Builder copy(UpdateAutonomousDatabaseDetails model) {
if (model.wasPropertyExplicitlySet("isFreeTier")) {
this.isFreeTier(model.getIsFreeTier());
}
+ if (model.wasPropertyExplicitlySet("availabilityDomain")) {
+ this.availabilityDomain(model.getAvailabilityDomain());
+ }
+ if (model.wasPropertyExplicitlySet("timeScheduledAdUpdate")) {
+ this.timeScheduledAdUpdate(model.getTimeScheduledAdUpdate());
+ }
+ if (model.wasPropertyExplicitlySet("isDisableAdUpdateSchedule")) {
+ this.isDisableAdUpdateSchedule(model.getIsDisableAdUpdateSchedule());
+ }
+ if (model.wasPropertyExplicitlySet("isScheduleAdUpdateToEarliest")) {
+ this.isScheduleAdUpdateToEarliest(model.getIsScheduleAdUpdateToEarliest());
+ }
if (model.wasPropertyExplicitlySet("adminPassword")) {
this.adminPassword(model.getAdminPassword());
}
@@ -2638,6 +2732,62 @@ public Boolean getIsFreeTier() {
return isFreeTier;
}
+ /** The Autonomous Database Serverless instance's availability domain. */
+ @com.fasterxml.jackson.annotation.JsonProperty("availabilityDomain")
+ private final String availabilityDomain;
+
+ /**
+ * The Autonomous Database Serverless instance's availability domain.
+ *
+ * @return the value
+ */
+ public String getAvailabilityDomain() {
+ return availabilityDomain;
+ }
+
+ /** The date and time when the Autonomous Database availability domain is to be updated. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeScheduledAdUpdate")
+ private final java.util.Date timeScheduledAdUpdate;
+
+ /**
+ * The date and time when the Autonomous Database availability domain is to be updated.
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeScheduledAdUpdate() {
+ return timeScheduledAdUpdate;
+ }
+
+ /** True, if you want to disable Autonomous Database availability domain scheduled update. */
+ @com.fasterxml.jackson.annotation.JsonProperty("isDisableAdUpdateSchedule")
+ private final Boolean isDisableAdUpdateSchedule;
+
+ /**
+ * True, if you want to disable Autonomous Database availability domain scheduled update.
+ *
+ * @return the value
+ */
+ public Boolean getIsDisableAdUpdateSchedule() {
+ return isDisableAdUpdateSchedule;
+ }
+
+ /**
+ * True, if you want to schedule Autonomous Database availability domain update to the earliest
+ * available time.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("isScheduleAdUpdateToEarliest")
+ private final Boolean isScheduleAdUpdateToEarliest;
+
+ /**
+ * True, if you want to schedule Autonomous Database availability domain update to the earliest
+ * available time.
+ *
+ * @return the value
+ */
+ public Boolean getIsScheduleAdUpdateToEarliest() {
+ return isScheduleAdUpdateToEarliest;
+ }
+
/**
* The password must be between 12 and 30 characters long, and must contain at least 1
* uppercase, 1 lowercase, and 1 numeric character. It cannot contain the double quote symbol
@@ -4151,6 +4301,12 @@ public String toString(boolean includeByteArrayContents) {
sb.append(", dataStorageSizeInGBs=").append(String.valueOf(this.dataStorageSizeInGBs));
sb.append(", displayName=").append(String.valueOf(this.displayName));
sb.append(", isFreeTier=").append(String.valueOf(this.isFreeTier));
+ sb.append(", availabilityDomain=").append(String.valueOf(this.availabilityDomain));
+ sb.append(", timeScheduledAdUpdate=").append(String.valueOf(this.timeScheduledAdUpdate));
+ sb.append(", isDisableAdUpdateSchedule=")
+ .append(String.valueOf(this.isDisableAdUpdateSchedule));
+ sb.append(", isScheduleAdUpdateToEarliest=")
+ .append(String.valueOf(this.isScheduleAdUpdateToEarliest));
sb.append(", adminPassword=").append(String.valueOf(this.adminPassword));
sb.append(", dbName=").append(String.valueOf(this.dbName));
sb.append(", freeformTags=").append(String.valueOf(this.freeformTags));
@@ -4245,6 +4401,12 @@ public boolean equals(Object o) {
&& java.util.Objects.equals(this.dataStorageSizeInGBs, other.dataStorageSizeInGBs)
&& java.util.Objects.equals(this.displayName, other.displayName)
&& java.util.Objects.equals(this.isFreeTier, other.isFreeTier)
+ && java.util.Objects.equals(this.availabilityDomain, other.availabilityDomain)
+ && java.util.Objects.equals(this.timeScheduledAdUpdate, other.timeScheduledAdUpdate)
+ && java.util.Objects.equals(
+ this.isDisableAdUpdateSchedule, other.isDisableAdUpdateSchedule)
+ && java.util.Objects.equals(
+ this.isScheduleAdUpdateToEarliest, other.isScheduleAdUpdateToEarliest)
&& java.util.Objects.equals(this.adminPassword, other.adminPassword)
&& java.util.Objects.equals(this.dbName, other.dbName)
&& java.util.Objects.equals(this.freeformTags, other.freeformTags)
@@ -4358,6 +4520,26 @@ public int hashCode() {
: this.dataStorageSizeInGBs.hashCode());
result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
result = (result * PRIME) + (this.isFreeTier == null ? 43 : this.isFreeTier.hashCode());
+ result =
+ (result * PRIME)
+ + (this.availabilityDomain == null
+ ? 43
+ : this.availabilityDomain.hashCode());
+ result =
+ (result * PRIME)
+ + (this.timeScheduledAdUpdate == null
+ ? 43
+ : this.timeScheduledAdUpdate.hashCode());
+ result =
+ (result * PRIME)
+ + (this.isDisableAdUpdateSchedule == null
+ ? 43
+ : this.isDisableAdUpdateSchedule.hashCode());
+ result =
+ (result * PRIME)
+ + (this.isScheduleAdUpdateToEarliest == null
+ ? 43
+ : this.isScheduleAdUpdateToEarliest.hashCode());
result =
(result * PRIME)
+ (this.adminPassword == null ? 43 : this.adminPassword.hashCode());
diff --git a/bmc-databasemanagement/pom.xml b/bmc-databasemanagement/pom.xml
index 15a0100420c..2a0bdfc670d 100644
--- a/bmc-databasemanagement/pom.xml
+++ b/bmc-databasemanagement/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-databasemanagement
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-databasemigration/pom.xml b/bmc-databasemigration/pom.xml
index ec0bd15b5a6..f70b6f956ea 100644
--- a/bmc-databasemigration/pom.xml
+++ b/bmc-databasemigration/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-databasemigration
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-databasetools/pom.xml b/bmc-databasetools/pom.xml
index 462821b79e2..c956201621b 100644
--- a/bmc-databasetools/pom.xml
+++ b/bmc-databasetools/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-databasetools
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-databasetoolsruntime/pom.xml b/bmc-databasetoolsruntime/pom.xml
index 27af9a511a2..126f616127a 100644
--- a/bmc-databasetoolsruntime/pom.xml
+++ b/bmc-databasetoolsruntime/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-databasetoolsruntime
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-datacatalog/pom.xml b/bmc-datacatalog/pom.xml
index fa8957b72de..9f49315d6bf 100644
--- a/bmc-datacatalog/pom.xml
+++ b/bmc-datacatalog/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-datacatalog
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-datacc/pom.xml b/bmc-datacc/pom.xml
index f19a4ccc4e6..a5e29e2fcb5 100644
--- a/bmc-datacc/pom.xml
+++ b/bmc-datacc/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-datacc
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-dataflow/pom.xml b/bmc-dataflow/pom.xml
index 0fec081893a..63a31502b1a 100644
--- a/bmc-dataflow/pom.xml
+++ b/bmc-dataflow/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-dataflow
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-dataintegration/pom.xml b/bmc-dataintegration/pom.xml
index 36ad90a4500..a02dfaeabeb 100644
--- a/bmc-dataintegration/pom.xml
+++ b/bmc-dataintegration/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-dataintegration
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-datalabelingservice/pom.xml b/bmc-datalabelingservice/pom.xml
index c96dd8917ad..dbabc1d5947 100644
--- a/bmc-datalabelingservice/pom.xml
+++ b/bmc-datalabelingservice/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-datalabelingservice
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-datalabelingservicedataplane/pom.xml b/bmc-datalabelingservicedataplane/pom.xml
index dea297a20f9..9701421f913 100644
--- a/bmc-datalabelingservicedataplane/pom.xml
+++ b/bmc-datalabelingservicedataplane/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-datalabelingservicedataplane
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-datasafe/pom.xml b/bmc-datasafe/pom.xml
index 14dea436311..840cb30c63c 100644
--- a/bmc-datasafe/pom.xml
+++ b/bmc-datasafe/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-datasafe
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-datascience/pom.xml b/bmc-datascience/pom.xml
index 83e0fea9691..a2117badb17 100644
--- a/bmc-datascience/pom.xml
+++ b/bmc-datascience/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-datascience
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-dblm/pom.xml b/bmc-dblm/pom.xml
index 310958203a5..9cb592ad553 100644
--- a/bmc-dblm/pom.xml
+++ b/bmc-dblm/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-dblm
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-dbmulticloud/pom.xml b/bmc-dbmulticloud/pom.xml
index 84540bb57e0..ff5fa7803c8 100644
--- a/bmc-dbmulticloud/pom.xml
+++ b/bmc-dbmulticloud/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.94.0
+ 3.94.1
../pom.xml
oci-java-sdk-dbmulticloud
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.94.0
+ 3.94.1
\ No newline at end of file
diff --git a/bmc-ddfs/pom.xml b/bmc-ddfs/pom.xml
new file mode 100644
index 00000000000..188c0176178
--- /dev/null
+++ b/bmc-ddfs/pom.xml
@@ -0,0 +1,21 @@
+
+
+ 4.0.0
+
+ com.oracle.oci.sdk
+ oci-java-sdk
+ 3.94.1
+ ../pom.xml
+
+ oci-java-sdk-ddfs
+ Oracle Cloud Infrastructure SDK - Ddfs
+ This project contains the SDK used for Oracle Cloud Infrastructure Ddfs
+ https://docs.cloud.oracle.com/Content/API/SDKDocs/javasdk.htm
+
+
+ com.oracle.oci.sdk
+ oci-java-sdk-common
+ 3.94.1
+
+
+
\ No newline at end of file
diff --git a/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/Instance.java b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/Instance.java
new file mode 100644
index 00000000000..17a45238613
--- /dev/null
+++ b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/Instance.java
@@ -0,0 +1,255 @@
+/**
+ * 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.ddfs;
+
+import com.oracle.bmc.ddfs.requests.*;
+import com.oracle.bmc.ddfs.responses.*;
+
+/**
+ * Use the Device Data FHIR Service API to manage DDFS instances. This service client uses
+ * CircuitBreakerUtils.DEFAULT_CIRCUIT_BREAKER for all the operations by default if no circuit
+ * breaker configuration is defined by the user.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20260831")
+public interface Instance extends AutoCloseable {
+
+ /** Rebuilds the client from scratch. Useful to refresh certificates. */
+ void refreshClient();
+
+ /**
+ * Sets the endpoint to call (ex, https://www.example.com).
+ *
+ * @param endpoint The endpoint of the service.
+ */
+ void setEndpoint(String endpoint);
+
+ /** Gets the set endpoint for REST call (ex, https://www.example.com) */
+ String getEndpoint();
+
+ /**
+ * Sets the region to call (ex, Region.US_PHOENIX_1).
+ *
+ * Note, this will call {@link #setEndpoint(String) setEndpoint} after resolving the
+ * endpoint. If the service is not available in this Region, however, an
+ * IllegalArgumentException will be raised.
+ *
+ * @param region The region of the service.
+ */
+ void setRegion(com.oracle.bmc.Region region);
+
+ /**
+ * Sets the region to call (ex, 'us-phoenix-1').
+ *
+ *
Note, this will first try to map the region ID to a known Region and call {@link
+ * #setRegion(Region) setRegion}.
+ *
+ *
If no known Region could be determined, it will create an endpoint based on the default
+ * endpoint format ({@link com.oracle.bmc.Region#formatDefaultRegionEndpoint(Service, String)}
+ * and then call {@link #setEndpoint(String) setEndpoint}.
+ *
+ * @param regionId The public region ID.
+ */
+ void setRegion(String regionId);
+
+ /**
+ * Determines whether realm specific endpoint should be used or not. Set
+ * realmSpecificEndpointTemplateEnabled to "true" if the user wants to enable use of realm
+ * specific endpoint template, otherwise set it to "false"
+ *
+ * @param realmSpecificEndpointTemplateEnabled flag to enable the use of realm specific endpoint
+ * template
+ */
+ void useRealmSpecificEndpointTemplate(boolean realmSpecificEndpointTemplateEnabled);
+
+ /**
+ * Cancels a work request.
+ *
+ * @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 uses
+ * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is
+ * provided. 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 CancelWorkRequest
+ * API.
+ */
+ CancelWorkRequestResponse cancelWorkRequest(CancelWorkRequestRequest request);
+
+ /**
+ * Moves an Instance into a different compartment within the same tenancy. For information about
+ * moving resources between compartments, see [Moving Resources to a Different
+ * Compartment](https://docs.oracle.com/iaas/Content/Identity/Tasks/managingcompartments.htm#moveRes).
+ *
+ * @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 uses
+ * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is
+ * provided. 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
+ * ChangeInstanceCompartment API.
+ */
+ ChangeInstanceCompartmentResponse changeInstanceCompartment(
+ ChangeInstanceCompartmentRequest request);
+
+ /**
+ * Creates an Instance.
+ *
+ * @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 uses
+ * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is
+ * provided. 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 CreateInstance API.
+ */
+ CreateInstanceResponse createInstance(CreateInstanceRequest request);
+
+ /**
+ * Deletes an Instance.
+ *
+ * @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 uses
+ * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is
+ * provided. 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 DeleteInstance API.
+ */
+ DeleteInstanceResponse deleteInstance(DeleteInstanceRequest request);
+
+ /**
+ * Gets information about an Instance.
+ *
+ * @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 uses
+ * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is
+ * provided. 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 GetInstance API.
+ */
+ GetInstanceResponse getInstance(GetInstanceRequest request);
+
+ /**
+ * Gets the details of a work request.
+ *
+ * @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 uses
+ * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is
+ * provided. 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 GetWorkRequest API.
+ */
+ GetWorkRequestResponse getWorkRequest(GetWorkRequestRequest request);
+
+ /**
+ * Gets a list of Instances.
+ *
+ * @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 uses
+ * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is
+ * provided. 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 ListInstances API.
+ */
+ ListInstancesResponse listInstances(ListInstancesRequest request);
+
+ /**
+ * Lists the errors for a work request.
+ *
+ * @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 uses
+ * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is
+ * provided. 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
+ * ListWorkRequestErrors API.
+ */
+ ListWorkRequestErrorsResponse listWorkRequestErrors(ListWorkRequestErrorsRequest request);
+
+ /**
+ * Lists the logs for a work request.
+ *
+ * @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 uses
+ * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is
+ * provided. 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 ListWorkRequestLogs
+ * API.
+ */
+ ListWorkRequestLogsResponse listWorkRequestLogs(ListWorkRequestLogsRequest request);
+
+ /**
+ * Lists the work requests in a 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 uses
+ * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is
+ * provided. 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 ListWorkRequests
+ * API.
+ */
+ ListWorkRequestsResponse listWorkRequests(ListWorkRequestsRequest request);
+
+ /**
+ * Updates an Instance.
+ *
+ * @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 uses
+ * RetryConfiguration.SDK_DEFAULT_RETRY_CONFIGURATION as default if no retry strategy is
+ * provided. 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 UpdateInstance API.
+ */
+ UpdateInstanceResponse updateInstance(UpdateInstanceRequest request);
+
+ /**
+ * Gets the pre-configured waiters available for resources for this service.
+ *
+ * @return The service waiters.
+ */
+ InstanceWaiters getWaiters();
+
+ /**
+ * Gets the pre-configured paginators available for list operations in this service which may
+ * return multiple pages of data. These paginators provide an {@link java.lang.Iterable}
+ * interface so that service responses, or resources/records, can be iterated through without
+ * having to manually deal with pagination and page tokens.
+ *
+ * @return The service paginators.
+ */
+ InstancePaginators getPaginators();
+}
diff --git a/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstanceAsync.java b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstanceAsync.java
new file mode 100644
index 00000000000..ddf46a33c96
--- /dev/null
+++ b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstanceAsync.java
@@ -0,0 +1,231 @@
+/**
+ * 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.ddfs;
+
+import com.oracle.bmc.ddfs.requests.*;
+import com.oracle.bmc.ddfs.responses.*;
+
+/** Use the Device Data FHIR Service API to manage DDFS instances. */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20260831")
+public interface InstanceAsync extends AutoCloseable {
+
+ /** Rebuilds the client from scratch. Useful to refresh certificates. */
+ void refreshClient();
+
+ /**
+ * Sets the endpoint to call (ex, https://www.example.com).
+ *
+ * @param endpoint The endpoint of the serice.
+ */
+ void setEndpoint(String endpoint);
+
+ /** Gets the set endpoint for REST call (ex, https://www.example.com) */
+ String getEndpoint();
+
+ /**
+ * Sets the region to call (ex, Region.US_PHOENIX_1).
+ *
+ *
Note, this will call {@link #setEndpoint(String) setEndpoint} after resolving the
+ * endpoint. If the service is not available in this region, however, an
+ * IllegalArgumentException will be raised.
+ *
+ * @param region The region of the service.
+ */
+ void setRegion(com.oracle.bmc.Region region);
+
+ /**
+ * Sets the region to call (ex, 'us-phoenix-1').
+ *
+ *
Note, this will first try to map the region ID to a known Region and call {@link
+ * #setRegion(Region) setRegion}.
+ *
+ *
If no known Region could be determined, it will create an endpoint based on the default
+ * endpoint format ({@link com.oracle.bmc.Region#formatDefaultRegionEndpoint(Service, String)}
+ * and then call {@link #setEndpoint(String) setEndpoint}.
+ *
+ * @param regionId The public region ID.
+ */
+ void setRegion(String regionId);
+
+ /**
+ * Determines whether realm specific endpoint should be used or not. Set
+ * realmSpecificEndpointTemplateEnabled to "true" if the user wants to enable use of realm
+ * specific endpoint template, otherwise set it to "false"
+ *
+ * @param realmSpecificEndpointTemplateEnabled flag to enable the use of realm specific endpoint
+ * template
+ */
+ void useRealmSpecificEndpointTemplate(boolean realmSpecificEndpointTemplateEnabled);
+
+ /**
+ * Cancels a work request.
+ *
+ * @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 cancelWorkRequest(
+ CancelWorkRequestRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ CancelWorkRequestRequest, CancelWorkRequestResponse>
+ handler);
+
+ /**
+ * Moves an Instance into a different compartment within the same tenancy. For information about
+ * moving resources between compartments, see [Moving Resources to a Different
+ * Compartment](https://docs.oracle.com/iaas/Content/Identity/Tasks/managingcompartments.htm#moveRes).
+ *
+ * @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 changeInstanceCompartment(
+ ChangeInstanceCompartmentRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ ChangeInstanceCompartmentRequest, ChangeInstanceCompartmentResponse>
+ handler);
+
+ /**
+ * Creates an Instance.
+ *
+ * @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 createInstance(
+ CreateInstanceRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Deletes an Instance.
+ *
+ * @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 deleteInstance(
+ DeleteInstanceRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Gets information about an Instance.
+ *
+ * @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 getInstance(
+ GetInstanceRequest request,
+ com.oracle.bmc.responses.AsyncHandler handler);
+
+ /**
+ * Gets the details of a work request.
+ *
+ * @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 getWorkRequest(
+ GetWorkRequestRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Gets a list of Instances.
+ *
+ * @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 listInstances(
+ ListInstancesRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Lists the errors for a work request.
+ *
+ * @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 listWorkRequestErrors(
+ ListWorkRequestErrorsRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ ListWorkRequestErrorsRequest, ListWorkRequestErrorsResponse>
+ handler);
+
+ /**
+ * Lists the logs for a work request.
+ *
+ * @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 listWorkRequestLogs(
+ ListWorkRequestLogsRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ ListWorkRequestLogsRequest, ListWorkRequestLogsResponse>
+ handler);
+
+ /**
+ * Lists the work requests in a 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 listWorkRequests(
+ ListWorkRequestsRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Updates an Instance.
+ *
+ * @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 updateInstance(
+ UpdateInstanceRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+}
diff --git a/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstanceAsyncClient.java b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstanceAsyncClient.java
new file mode 100644
index 00000000000..a91080cb914
--- /dev/null
+++ b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstanceAsyncClient.java
@@ -0,0 +1,598 @@
+/**
+ * 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.ddfs;
+
+import com.oracle.bmc.util.internal.Validate;
+import com.oracle.bmc.ddfs.requests.*;
+import com.oracle.bmc.ddfs.responses.*;
+
+import java.util.Objects;
+
+/**
+ * Async client implementation for Instance service.
+ * There are two ways to use async client: 1. Use AsyncHandler: using AsyncHandler, if the response
+ * to the call is an {@link java.io.InputStream}, like getObject Api in object storage service,
+ * developers need to process the stream in AsyncHandler, and not anywhere else, because the stream
+ * will be closed right after the AsyncHandler is invoked.
+ * 2. Use Java Future: using Java Future, developers need to close the stream after they are done
+ * with the Java Future.
+ * Accessing the result should be done in a mutually exclusive manner, either through the Future or
+ * the AsyncHandler, but not both. If the Future is used, the caller should pass in null as the
+ * AsyncHandler. If the AsyncHandler is used, it is still safe to use the Future to determine
+ * whether or not the request was completed via Future.isDone/isCancelled.
+ * Please refer to
+ * https://github.com/oracle/oci-java-sdk/blob/master/bmc-examples/src/main/java/ResteasyClientWithObjectStorageExample.java
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20260831")
+public class InstanceAsyncClient extends com.oracle.bmc.http.internal.BaseAsyncClient
+ implements InstanceAsync {
+ /** Service instance for Instance. */
+ public static final com.oracle.bmc.Service SERVICE =
+ com.oracle.bmc.Services.serviceBuilder()
+ .serviceName(InstanceClient.class.getName())
+ .serviceEndpointPrefix("")
+ .serviceEndpointTemplate("https://ddfs.{region}.oci.{secondLevelDomain}")
+ .build();
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(InstanceAsyncClient.class);
+
+ InstanceAsyncClient(
+ com.oracle.bmc.common.ClientBuilderBase, ?> builder,
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ super(builder, authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a builder for this client.
+ *
+ * @return builder
+ */
+ public static Builder builder() {
+ return new Builder(SERVICE);
+ }
+
+ /**
+ * Builder class for this client. The "authenticationDetailsProvider" is required and must be
+ * passed to the {@link #build(AbstractAuthenticationDetailsProvider)} method.
+ */
+ public static class Builder
+ extends com.oracle.bmc.common.RegionalClientBuilder {
+ private Builder(com.oracle.bmc.Service service) {
+ super(service);
+ final String packageName = "ddfs";
+ com.oracle.bmc.internal.DeveloperToolConfiguration
+ .throwDisabledServiceExceptionIfAppropriate(packageName);
+ requestSignerFactory =
+ new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
+ com.oracle.bmc.http.signing.SigningStrategy.STANDARD);
+ }
+
+ /**
+ * Build the client.
+ *
+ * @param authenticationDetailsProvider authentication details provider
+ * @return the client
+ */
+ public InstanceAsyncClient build(
+ @jakarta.annotation.Nonnull
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ return new InstanceAsyncClient(this, authenticationDetailsProvider);
+ }
+ }
+
+ @Override
+ public void setRegion(com.oracle.bmc.Region region) {
+ super.setRegion(region);
+ }
+
+ @Override
+ public void setRegion(String regionId) {
+ super.setRegion(regionId);
+ }
+
+ @Override
+ public java.util.concurrent.Future cancelWorkRequest(
+ CancelWorkRequestRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ CancelWorkRequestRequest, CancelWorkRequestResponse>
+ handler) {
+
+ Validate.notBlank(request.getWorkRequestId(), "workRequestId must not be blank");
+
+ return clientCall(request, CancelWorkRequestResponse::builder)
+ .logger(LOG, "cancelWorkRequest")
+ .serviceDetails("Instance", "CancelWorkRequest", "")
+ .method(com.oracle.bmc.http.client.Method.DELETE)
+ .requestBuilder(CancelWorkRequestRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("workRequests")
+ .appendPathParam(request.getWorkRequestId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleResponseHeaderString(
+ "opc-request-id", CancelWorkRequestResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future changeInstanceCompartment(
+ ChangeInstanceCompartmentRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ ChangeInstanceCompartmentRequest, ChangeInstanceCompartmentResponse>
+ handler) {
+
+ Validate.notBlank(request.getInstanceId(), "instanceId must not be blank");
+ Objects.requireNonNull(
+ request.getChangeInstanceCompartmentDetails(),
+ "changeInstanceCompartmentDetails is required");
+
+ return clientCall(request, ChangeInstanceCompartmentResponse::builder)
+ .logger(LOG, "changeInstanceCompartment")
+ .serviceDetails("Instance", "ChangeInstanceCompartment", "")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(ChangeInstanceCompartmentRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("instances")
+ .appendPathParam(request.getInstanceId())
+ .appendPathParam("actions")
+ .appendPathParam("changeCompartment")
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleResponseHeaderString(
+ "opc-work-request-id",
+ ChangeInstanceCompartmentResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", ChangeInstanceCompartmentResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future createInstance(
+ CreateInstanceRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ CreateInstanceRequest, CreateInstanceResponse>
+ handler) {
+ Objects.requireNonNull(
+ request.getCreateInstanceDetails(), "createInstanceDetails is required");
+
+ return clientCall(request, CreateInstanceResponse::builder)
+ .logger(LOG, "createInstance")
+ .serviceDetails("Instance", "CreateInstance", "")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CreateInstanceRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("instances")
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.ddfs.model.Instance.class,
+ CreateInstanceResponse.Builder::instance)
+ .handleResponseHeaderString("location", CreateInstanceResponse.Builder::location)
+ .handleResponseHeaderString(
+ "content-location", CreateInstanceResponse.Builder::contentLocation)
+ .handleResponseHeaderString("etag", CreateInstanceResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-work-request-id", CreateInstanceResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", CreateInstanceResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future deleteInstance(
+ DeleteInstanceRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ DeleteInstanceRequest, DeleteInstanceResponse>
+ handler) {
+
+ Validate.notBlank(request.getInstanceId(), "instanceId must not be blank");
+
+ return clientCall(request, DeleteInstanceResponse::builder)
+ .logger(LOG, "deleteInstance")
+ .serviceDetails("Instance", "DeleteInstance", "")
+ .method(com.oracle.bmc.http.client.Method.DELETE)
+ .requestBuilder(DeleteInstanceRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("instances")
+ .appendPathParam(request.getInstanceId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleResponseHeaderString(
+ "opc-work-request-id", DeleteInstanceResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", DeleteInstanceResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future getInstance(
+ GetInstanceRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+
+ Validate.notBlank(request.getInstanceId(), "instanceId must not be blank");
+
+ return clientCall(request, GetInstanceResponse::builder)
+ .logger(LOG, "getInstance")
+ .serviceDetails("Instance", "GetInstance", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetInstanceRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("instances")
+ .appendPathParam(request.getInstanceId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.ddfs.model.Instance.class,
+ GetInstanceResponse.Builder::instance)
+ .handleResponseHeaderString("etag", GetInstanceResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetInstanceResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future getWorkRequest(
+ GetWorkRequestRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ GetWorkRequestRequest, GetWorkRequestResponse>
+ handler) {
+
+ Validate.notBlank(request.getWorkRequestId(), "workRequestId must not be blank");
+
+ return clientCall(request, GetWorkRequestResponse::builder)
+ .logger(LOG, "getWorkRequest")
+ .serviceDetails("Instance", "GetWorkRequest", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetWorkRequestRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("workRequests")
+ .appendPathParam(request.getWorkRequestId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.ddfs.model.WorkRequest.class,
+ GetWorkRequestResponse.Builder::workRequest)
+ .handleResponseHeaderString("etag", GetWorkRequestResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetWorkRequestResponse.Builder::opcRequestId)
+ .handleResponseHeaderInteger(
+ "retry-after", GetWorkRequestResponse.Builder::retryAfter)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future listInstances(
+ ListInstancesRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+
+ return clientCall(request, ListInstancesResponse::builder)
+ .logger(LOG, "listInstances")
+ .serviceDetails("Instance", "ListInstances", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListInstancesRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("instances")
+ .appendQueryParam("compartmentId", request.getCompartmentId())
+ .appendEnumQueryParam("lifecycleState", request.getLifecycleState())
+ .appendQueryParam("displayName", request.getDisplayName())
+ .appendQueryParam("id", request.getId())
+ .appendQueryParam("limit", request.getLimit())
+ .appendQueryParam("page", request.getPage())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.ddfs.model.InstanceCollection.class,
+ ListInstancesResponse.Builder::instanceCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListInstancesResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListInstancesResponse.Builder::opcNextPage)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future listWorkRequestErrors(
+ ListWorkRequestErrorsRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ ListWorkRequestErrorsRequest, ListWorkRequestErrorsResponse>
+ handler) {
+
+ Validate.notBlank(request.getWorkRequestId(), "workRequestId must not be blank");
+
+ return clientCall(request, ListWorkRequestErrorsResponse::builder)
+ .logger(LOG, "listWorkRequestErrors")
+ .serviceDetails("Instance", "ListWorkRequestErrors", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListWorkRequestErrorsRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("workRequests")
+ .appendPathParam(request.getWorkRequestId())
+ .appendPathParam("errors")
+ .appendQueryParam("page", request.getPage())
+ .appendQueryParam("limit", request.getLimit())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.ddfs.model.WorkRequestErrorCollection.class,
+ ListWorkRequestErrorsResponse.Builder::workRequestErrorCollection)
+ .handleResponseHeaderString(
+ "opc-next-page", ListWorkRequestErrorsResponse.Builder::opcNextPage)
+ .handleResponseHeaderString(
+ "opc-request-id", ListWorkRequestErrorsResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future listWorkRequestLogs(
+ ListWorkRequestLogsRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ ListWorkRequestLogsRequest, ListWorkRequestLogsResponse>
+ handler) {
+
+ Validate.notBlank(request.getWorkRequestId(), "workRequestId must not be blank");
+
+ return clientCall(request, ListWorkRequestLogsResponse::builder)
+ .logger(LOG, "listWorkRequestLogs")
+ .serviceDetails("Instance", "ListWorkRequestLogs", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListWorkRequestLogsRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("workRequests")
+ .appendPathParam(request.getWorkRequestId())
+ .appendPathParam("logs")
+ .appendQueryParam("page", request.getPage())
+ .appendQueryParam("limit", request.getLimit())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.ddfs.model.WorkRequestLogEntryCollection.class,
+ ListWorkRequestLogsResponse.Builder::workRequestLogEntryCollection)
+ .handleResponseHeaderString(
+ "opc-next-page", ListWorkRequestLogsResponse.Builder::opcNextPage)
+ .handleResponseHeaderString(
+ "opc-request-id", ListWorkRequestLogsResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future listWorkRequests(
+ ListWorkRequestsRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ ListWorkRequestsRequest, ListWorkRequestsResponse>
+ handler) {
+
+ return clientCall(request, ListWorkRequestsResponse::builder)
+ .logger(LOG, "listWorkRequests")
+ .serviceDetails("Instance", "ListWorkRequests", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListWorkRequestsRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("workRequests")
+ .appendQueryParam("compartmentId", request.getCompartmentId())
+ .appendQueryParam("workRequestId", request.getWorkRequestId())
+ .appendEnumQueryParam("status", request.getStatus())
+ .appendQueryParam("resourceId", request.getResourceId())
+ .appendQueryParam("page", request.getPage())
+ .appendQueryParam("limit", request.getLimit())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.ddfs.model.WorkRequestSummaryCollection.class,
+ ListWorkRequestsResponse.Builder::workRequestSummaryCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListWorkRequestsResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListWorkRequestsResponse.Builder::opcNextPage)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future updateInstance(
+ UpdateInstanceRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ UpdateInstanceRequest, UpdateInstanceResponse>
+ handler) {
+
+ Validate.notBlank(request.getInstanceId(), "instanceId must not be blank");
+ Objects.requireNonNull(
+ request.getUpdateInstanceDetails(), "updateInstanceDetails is required");
+
+ return clientCall(request, UpdateInstanceResponse::builder)
+ .logger(LOG, "updateInstance")
+ .serviceDetails("Instance", "UpdateInstance", "")
+ .method(com.oracle.bmc.http.client.Method.PUT)
+ .requestBuilder(UpdateInstanceRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("instances")
+ .appendPathParam(request.getInstanceId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleResponseHeaderString(
+ "opc-work-request-id", UpdateInstanceResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", UpdateInstanceResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceAsyncClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider) {
+ this(builder(), authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceAsyncClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration) {
+ this(builder().configuration(configuration), authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceAsyncClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator) {
+ this(
+ builder().configuration(configuration).clientConfigurator(clientConfigurator),
+ authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory),
+ authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators),
+ authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint),
+ authenticationDetailsProvider);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @param signingStrategyRequestSignerFactories {@link
+ * Builder#signingStrategyRequestSignerFactories}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceAsyncClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.Map<
+ com.oracle.bmc.http.signing.SigningStrategy,
+ com.oracle.bmc.http.signing.RequestSignerFactory>
+ signingStrategyRequestSignerFactories,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint)
+ .signingStrategyRequestSignerFactories(
+ signingStrategyRequestSignerFactories),
+ authenticationDetailsProvider);
+ }
+}
diff --git a/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstanceClient.java b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstanceClient.java
new file mode 100644
index 00000000000..50e0e1e4061
--- /dev/null
+++ b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstanceClient.java
@@ -0,0 +1,652 @@
+/**
+ * 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.ddfs;
+
+import com.oracle.bmc.util.internal.Validate;
+import com.oracle.bmc.ddfs.requests.*;
+import com.oracle.bmc.ddfs.responses.*;
+import com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration;
+import com.oracle.bmc.util.CircuitBreakerUtils;
+
+import java.util.Objects;
+
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20260831")
+public class InstanceClient extends com.oracle.bmc.http.internal.BaseSyncClient
+ implements Instance {
+ /** Service instance for Instance. */
+ public static final com.oracle.bmc.Service SERVICE =
+ com.oracle.bmc.Services.serviceBuilder()
+ .serviceName(InstanceClient.class.getName())
+ .serviceEndpointPrefix("")
+ .serviceEndpointTemplate("https://ddfs.{region}.oci.{secondLevelDomain}")
+ .build();
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(InstanceClient.class);
+
+ private final InstanceWaiters waiters;
+
+ private final InstancePaginators paginators;
+
+ InstanceClient(
+ com.oracle.bmc.common.ClientBuilderBase, ?> builder,
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ java.util.concurrent.ExecutorService executorService) {
+ super(
+ builder,
+ authenticationDetailsProvider,
+ CircuitBreakerUtils.DEFAULT_CIRCUIT_BREAKER_CONFIGURATION);
+
+ if (executorService == null) {
+ // up to 50 (core) threads, time out after 60s idle, all daemon
+ java.util.concurrent.ThreadPoolExecutor threadPoolExecutor =
+ new java.util.concurrent.ThreadPoolExecutor(
+ 50,
+ 50,
+ 60L,
+ java.util.concurrent.TimeUnit.SECONDS,
+ new java.util.concurrent.LinkedBlockingQueue(),
+ com.oracle.bmc.internal.ClientThreadFactory.builder()
+ .isDaemon(true)
+ .nameFormat("Instance-waiters-%d")
+ .build());
+ threadPoolExecutor.allowCoreThreadTimeOut(true);
+
+ executorService = threadPoolExecutor;
+ }
+ this.waiters = new InstanceWaiters(executorService, this);
+
+ this.paginators = new InstancePaginators(this);
+ }
+
+ /**
+ * Create a builder for this client.
+ *
+ * @return builder
+ */
+ public static Builder builder() {
+ return new Builder(SERVICE);
+ }
+
+ /**
+ * Builder class for this client. The "authenticationDetailsProvider" is required and must be
+ * passed to the {@link #build(AbstractAuthenticationDetailsProvider)} method.
+ */
+ public static class Builder
+ extends com.oracle.bmc.common.RegionalClientBuilder {
+ private java.util.concurrent.ExecutorService executorService;
+
+ private Builder(com.oracle.bmc.Service service) {
+ super(service);
+ final String packageName = "ddfs";
+ com.oracle.bmc.internal.DeveloperToolConfiguration
+ .throwDisabledServiceExceptionIfAppropriate(packageName);
+ requestSignerFactory =
+ new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
+ com.oracle.bmc.http.signing.SigningStrategy.STANDARD);
+ }
+
+ /**
+ * Set the ExecutorService for the client to be created.
+ *
+ * @param executorService executorService
+ * @return this builder
+ */
+ public Builder executorService(java.util.concurrent.ExecutorService executorService) {
+ this.executorService = executorService;
+ return this;
+ }
+
+ /**
+ * Build the client.
+ *
+ * @param authenticationDetailsProvider authentication details provider
+ * @return the client
+ */
+ public InstanceClient build(
+ @jakarta.annotation.Nonnull
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ return new InstanceClient(this, authenticationDetailsProvider, executorService);
+ }
+ }
+
+ @Override
+ public void setRegion(com.oracle.bmc.Region region) {
+ super.setRegion(region);
+ }
+
+ @Override
+ public void setRegion(String regionId) {
+ super.setRegion(regionId);
+ }
+
+ @Override
+ public CancelWorkRequestResponse cancelWorkRequest(CancelWorkRequestRequest request) {
+
+ Validate.notBlank(request.getWorkRequestId(), "workRequestId must not be blank");
+
+ return clientCall(request, CancelWorkRequestResponse::builder)
+ .logger(LOG, "cancelWorkRequest")
+ .serviceDetails("Instance", "CancelWorkRequest", "")
+ .method(com.oracle.bmc.http.client.Method.DELETE)
+ .requestBuilder(CancelWorkRequestRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("workRequests")
+ .appendPathParam(request.getWorkRequestId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleResponseHeaderString(
+ "opc-request-id", CancelWorkRequestResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public ChangeInstanceCompartmentResponse changeInstanceCompartment(
+ ChangeInstanceCompartmentRequest request) {
+
+ Validate.notBlank(request.getInstanceId(), "instanceId must not be blank");
+ Objects.requireNonNull(
+ request.getChangeInstanceCompartmentDetails(),
+ "changeInstanceCompartmentDetails is required");
+
+ return clientCall(request, ChangeInstanceCompartmentResponse::builder)
+ .logger(LOG, "changeInstanceCompartment")
+ .serviceDetails("Instance", "ChangeInstanceCompartment", "")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(ChangeInstanceCompartmentRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("instances")
+ .appendPathParam(request.getInstanceId())
+ .appendPathParam("actions")
+ .appendPathParam("changeCompartment")
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .hasBody()
+ .handleResponseHeaderString(
+ "opc-work-request-id",
+ ChangeInstanceCompartmentResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", ChangeInstanceCompartmentResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public CreateInstanceResponse createInstance(CreateInstanceRequest request) {
+ Objects.requireNonNull(
+ request.getCreateInstanceDetails(), "createInstanceDetails is required");
+
+ return clientCall(request, CreateInstanceResponse::builder)
+ .logger(LOG, "createInstance")
+ .serviceDetails("Instance", "CreateInstance", "")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CreateInstanceRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("instances")
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.ddfs.model.Instance.class,
+ CreateInstanceResponse.Builder::instance)
+ .handleResponseHeaderString("location", CreateInstanceResponse.Builder::location)
+ .handleResponseHeaderString(
+ "content-location", CreateInstanceResponse.Builder::contentLocation)
+ .handleResponseHeaderString("etag", CreateInstanceResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-work-request-id", CreateInstanceResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", CreateInstanceResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public DeleteInstanceResponse deleteInstance(DeleteInstanceRequest request) {
+
+ Validate.notBlank(request.getInstanceId(), "instanceId must not be blank");
+
+ return clientCall(request, DeleteInstanceResponse::builder)
+ .logger(LOG, "deleteInstance")
+ .serviceDetails("Instance", "DeleteInstance", "")
+ .method(com.oracle.bmc.http.client.Method.DELETE)
+ .requestBuilder(DeleteInstanceRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("instances")
+ .appendPathParam(request.getInstanceId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleResponseHeaderString(
+ "opc-work-request-id", DeleteInstanceResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", DeleteInstanceResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public GetInstanceResponse getInstance(GetInstanceRequest request) {
+
+ Validate.notBlank(request.getInstanceId(), "instanceId must not be blank");
+
+ return clientCall(request, GetInstanceResponse::builder)
+ .logger(LOG, "getInstance")
+ .serviceDetails("Instance", "GetInstance", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetInstanceRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("instances")
+ .appendPathParam(request.getInstanceId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.ddfs.model.Instance.class,
+ GetInstanceResponse.Builder::instance)
+ .handleResponseHeaderString("etag", GetInstanceResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetInstanceResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public GetWorkRequestResponse getWorkRequest(GetWorkRequestRequest request) {
+
+ Validate.notBlank(request.getWorkRequestId(), "workRequestId must not be blank");
+
+ return clientCall(request, GetWorkRequestResponse::builder)
+ .logger(LOG, "getWorkRequest")
+ .serviceDetails("Instance", "GetWorkRequest", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetWorkRequestRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("workRequests")
+ .appendPathParam(request.getWorkRequestId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.ddfs.model.WorkRequest.class,
+ GetWorkRequestResponse.Builder::workRequest)
+ .handleResponseHeaderString("etag", GetWorkRequestResponse.Builder::etag)
+ .handleResponseHeaderString(
+ "opc-request-id", GetWorkRequestResponse.Builder::opcRequestId)
+ .handleResponseHeaderInteger(
+ "retry-after", GetWorkRequestResponse.Builder::retryAfter)
+ .callSync();
+ }
+
+ @Override
+ public ListInstancesResponse listInstances(ListInstancesRequest request) {
+
+ return clientCall(request, ListInstancesResponse::builder)
+ .logger(LOG, "listInstances")
+ .serviceDetails("Instance", "ListInstances", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListInstancesRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("instances")
+ .appendQueryParam("compartmentId", request.getCompartmentId())
+ .appendEnumQueryParam("lifecycleState", request.getLifecycleState())
+ .appendQueryParam("displayName", request.getDisplayName())
+ .appendQueryParam("id", request.getId())
+ .appendQueryParam("limit", request.getLimit())
+ .appendQueryParam("page", request.getPage())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.ddfs.model.InstanceCollection.class,
+ ListInstancesResponse.Builder::instanceCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListInstancesResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListInstancesResponse.Builder::opcNextPage)
+ .callSync();
+ }
+
+ @Override
+ public ListWorkRequestErrorsResponse listWorkRequestErrors(
+ ListWorkRequestErrorsRequest request) {
+
+ Validate.notBlank(request.getWorkRequestId(), "workRequestId must not be blank");
+
+ return clientCall(request, ListWorkRequestErrorsResponse::builder)
+ .logger(LOG, "listWorkRequestErrors")
+ .serviceDetails("Instance", "ListWorkRequestErrors", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListWorkRequestErrorsRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("workRequests")
+ .appendPathParam(request.getWorkRequestId())
+ .appendPathParam("errors")
+ .appendQueryParam("page", request.getPage())
+ .appendQueryParam("limit", request.getLimit())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.ddfs.model.WorkRequestErrorCollection.class,
+ ListWorkRequestErrorsResponse.Builder::workRequestErrorCollection)
+ .handleResponseHeaderString(
+ "opc-next-page", ListWorkRequestErrorsResponse.Builder::opcNextPage)
+ .handleResponseHeaderString(
+ "opc-request-id", ListWorkRequestErrorsResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public ListWorkRequestLogsResponse listWorkRequestLogs(ListWorkRequestLogsRequest request) {
+
+ Validate.notBlank(request.getWorkRequestId(), "workRequestId must not be blank");
+
+ return clientCall(request, ListWorkRequestLogsResponse::builder)
+ .logger(LOG, "listWorkRequestLogs")
+ .serviceDetails("Instance", "ListWorkRequestLogs", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListWorkRequestLogsRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("workRequests")
+ .appendPathParam(request.getWorkRequestId())
+ .appendPathParam("logs")
+ .appendQueryParam("page", request.getPage())
+ .appendQueryParam("limit", request.getLimit())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.ddfs.model.WorkRequestLogEntryCollection.class,
+ ListWorkRequestLogsResponse.Builder::workRequestLogEntryCollection)
+ .handleResponseHeaderString(
+ "opc-next-page", ListWorkRequestLogsResponse.Builder::opcNextPage)
+ .handleResponseHeaderString(
+ "opc-request-id", ListWorkRequestLogsResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public ListWorkRequestsResponse listWorkRequests(ListWorkRequestsRequest request) {
+
+ return clientCall(request, ListWorkRequestsResponse::builder)
+ .logger(LOG, "listWorkRequests")
+ .serviceDetails("Instance", "ListWorkRequests", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListWorkRequestsRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("workRequests")
+ .appendQueryParam("compartmentId", request.getCompartmentId())
+ .appendQueryParam("workRequestId", request.getWorkRequestId())
+ .appendEnumQueryParam("status", request.getStatus())
+ .appendQueryParam("resourceId", request.getResourceId())
+ .appendQueryParam("page", request.getPage())
+ .appendQueryParam("limit", request.getLimit())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.ddfs.model.WorkRequestSummaryCollection.class,
+ ListWorkRequestsResponse.Builder::workRequestSummaryCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListWorkRequestsResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListWorkRequestsResponse.Builder::opcNextPage)
+ .callSync();
+ }
+
+ @Override
+ public UpdateInstanceResponse updateInstance(UpdateInstanceRequest request) {
+
+ Validate.notBlank(request.getInstanceId(), "instanceId must not be blank");
+ Objects.requireNonNull(
+ request.getUpdateInstanceDetails(), "updateInstanceDetails is required");
+
+ return clientCall(request, UpdateInstanceResponse::builder)
+ .logger(LOG, "updateInstance")
+ .serviceDetails("Instance", "UpdateInstance", "")
+ .method(com.oracle.bmc.http.client.Method.PUT)
+ .requestBuilder(UpdateInstanceRequest::builder)
+ .basePath("/20260831")
+ .appendPathParam("instances")
+ .appendPathParam(request.getInstanceId())
+ .accept("application/json")
+ .appendHeader("if-match", request.getIfMatch())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .hasBody()
+ .handleResponseHeaderString(
+ "opc-work-request-id", UpdateInstanceResponse.Builder::opcWorkRequestId)
+ .handleResponseHeaderString(
+ "opc-request-id", UpdateInstanceResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public InstanceWaiters getWaiters() {
+ return waiters;
+ }
+
+ @Override
+ public InstancePaginators getPaginators() {
+ return paginators;
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider) {
+ this(builder(), authenticationDetailsProvider, null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration) {
+ this(builder().configuration(configuration), authenticationDetailsProvider, null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceClient(
+ com.oracle.bmc.auth.BasicAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator) {
+ this(
+ builder().configuration(configuration).clientConfigurator(clientConfigurator),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @param signingStrategyRequestSignerFactories {@link
+ * Builder#signingStrategyRequestSignerFactories}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.Map<
+ com.oracle.bmc.http.signing.SigningStrategy,
+ com.oracle.bmc.http.signing.RequestSignerFactory>
+ signingStrategyRequestSignerFactories,
+ java.util.List additionalClientConfigurators,
+ String endpoint) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint)
+ .signingStrategyRequestSignerFactories(
+ signingStrategyRequestSignerFactories),
+ authenticationDetailsProvider,
+ null);
+ }
+
+ /**
+ * Create a new client instance.
+ *
+ * @param authenticationDetailsProvider The authentication details (see {@link Builder#build})
+ * @param configuration {@link Builder#configuration}
+ * @param clientConfigurator {@link Builder#clientConfigurator}
+ * @param defaultRequestSignerFactory {@link Builder#requestSignerFactory}
+ * @param additionalClientConfigurators {@link Builder#additionalClientConfigurators}
+ * @param endpoint {@link Builder#endpoint}
+ * @param signingStrategyRequestSignerFactories {@link
+ * Builder#signingStrategyRequestSignerFactories}
+ * @param executorService {@link Builder#executorService}
+ * @deprecated Use the {@link #builder() builder} instead.
+ */
+ @Deprecated
+ public InstanceClient(
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ com.oracle.bmc.ClientConfiguration configuration,
+ com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ com.oracle.bmc.http.signing.RequestSignerFactory defaultRequestSignerFactory,
+ java.util.Map<
+ com.oracle.bmc.http.signing.SigningStrategy,
+ com.oracle.bmc.http.signing.RequestSignerFactory>
+ signingStrategyRequestSignerFactories,
+ java.util.List additionalClientConfigurators,
+ String endpoint,
+ java.util.concurrent.ExecutorService executorService) {
+ this(
+ builder()
+ .configuration(configuration)
+ .clientConfigurator(clientConfigurator)
+ .requestSignerFactory(defaultRequestSignerFactory)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .endpoint(endpoint)
+ .signingStrategyRequestSignerFactories(
+ signingStrategyRequestSignerFactories),
+ authenticationDetailsProvider,
+ executorService);
+ }
+}
diff --git a/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstancePaginators.java b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstancePaginators.java
new file mode 100644
index 00000000000..033905d7773
--- /dev/null
+++ b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstancePaginators.java
@@ -0,0 +1,513 @@
+/**
+ * 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.ddfs;
+
+import com.oracle.bmc.ddfs.requests.*;
+import com.oracle.bmc.ddfs.responses.*;
+
+/**
+ * Collection of helper methods that can be used to provide an {@link java.lang.Iterable} interface
+ * to any list operations of Instance where multiple pages of data may be fetched. Two styles of
+ * iteration are supported:
+ *
+ *
+ * - Iterating over the Response objects returned by the list operation. These are referred to
+ * as ResponseIterators, and the methods are suffixed with ResponseIterator. For example:
+ * listUsersResponseIterator
+ *
- Iterating over the resources/records being listed. These are referred to as
+ * RecordIterators, and the methods are suffixed with RecordIterator. For example:
+ * listUsersRecordIterator
+ *
+ *
+ * These iterables abstract away the need to write code to manually handle pagination via looping
+ * and using the page tokens. They will automatically fetch more data from the service when
+ * required.
+ *
+ * As an example, if we were using the ListUsers operation in IdentityService, then the {@link
+ * java.lang.Iterable} returned by calling a ResponseIterator method would iterate over the
+ * ListUsersResponse objects returned by each ListUsers call, whereas the {@link java.lang.Iterable}
+ * returned by calling a RecordIterator method would iterate over the User records and we don't have
+ * to deal with ListUsersResponse objects at all. In either case, pagination will be automatically
+ * handled so we can iterate until there are no more responses or no more resources/records
+ * available.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20260831")
+public class InstancePaginators {
+ private final Instance client;
+
+ public InstancePaginators(Instance client) {
+ this.client = client;
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the responses received from the listInstances
+ * 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 listInstancesResponseIterator(
+ final ListInstancesRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseIterable<
+ ListInstancesRequest.Builder, ListInstancesRequest, ListInstancesResponse>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListInstancesRequest.Builder get() {
+ return ListInstancesRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListInstancesResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListInstancesRequest.Builder>,
+ ListInstancesRequest>() {
+ @Override
+ public ListInstancesRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListInstancesRequest.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() {
+ @Override
+ public ListInstancesResponse apply(ListInstancesRequest request) {
+ return client.listInstances(request);
+ }
+ });
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the {@link
+ * com.oracle.bmc.ddfs.model.InstanceSummary} objects contained in responses from the
+ * listInstances 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.ddfs.model.InstanceSummary} objects contained in responses received from
+ * the service.
+ */
+ public Iterable listInstancesRecordIterator(
+ final ListInstancesRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseRecordIterable<
+ ListInstancesRequest.Builder,
+ ListInstancesRequest,
+ ListInstancesResponse,
+ com.oracle.bmc.ddfs.model.InstanceSummary>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListInstancesRequest.Builder get() {
+ return ListInstancesRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListInstancesResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListInstancesRequest.Builder>,
+ ListInstancesRequest>() {
+ @Override
+ public ListInstancesRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListInstancesRequest.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() {
+ @Override
+ public ListInstancesResponse apply(ListInstancesRequest request) {
+ return client.listInstances(request);
+ }
+ },
+ new java.util.function.Function<
+ ListInstancesResponse,
+ java.util.List>() {
+ @Override
+ public java.util.List apply(
+ ListInstancesResponse response) {
+ return response.getInstanceCollection().getItems();
+ }
+ });
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the responses received from the
+ * listWorkRequestErrors 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 listWorkRequestErrorsResponseIterator(
+ final ListWorkRequestErrorsRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseIterable<
+ ListWorkRequestErrorsRequest.Builder,
+ ListWorkRequestErrorsRequest,
+ ListWorkRequestErrorsResponse>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListWorkRequestErrorsRequest.Builder get() {
+ return ListWorkRequestErrorsRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListWorkRequestErrorsResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListWorkRequestErrorsRequest.Builder>,
+ ListWorkRequestErrorsRequest>() {
+ @Override
+ public ListWorkRequestErrorsRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListWorkRequestErrorsRequest.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<
+ ListWorkRequestErrorsRequest, ListWorkRequestErrorsResponse>() {
+ @Override
+ public ListWorkRequestErrorsResponse apply(
+ ListWorkRequestErrorsRequest request) {
+ return client.listWorkRequestErrors(request);
+ }
+ });
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the {@link
+ * com.oracle.bmc.ddfs.model.WorkRequestError} objects contained in responses from the
+ * listWorkRequestErrors 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.ddfs.model.WorkRequestError} objects contained in responses received from
+ * the service.
+ */
+ public Iterable listWorkRequestErrorsRecordIterator(
+ final ListWorkRequestErrorsRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseRecordIterable<
+ ListWorkRequestErrorsRequest.Builder,
+ ListWorkRequestErrorsRequest,
+ ListWorkRequestErrorsResponse,
+ com.oracle.bmc.ddfs.model.WorkRequestError>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListWorkRequestErrorsRequest.Builder get() {
+ return ListWorkRequestErrorsRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListWorkRequestErrorsResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListWorkRequestErrorsRequest.Builder>,
+ ListWorkRequestErrorsRequest>() {
+ @Override
+ public ListWorkRequestErrorsRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListWorkRequestErrorsRequest.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<
+ ListWorkRequestErrorsRequest, ListWorkRequestErrorsResponse>() {
+ @Override
+ public ListWorkRequestErrorsResponse apply(
+ ListWorkRequestErrorsRequest request) {
+ return client.listWorkRequestErrors(request);
+ }
+ },
+ new java.util.function.Function<
+ ListWorkRequestErrorsResponse,
+ java.util.List>() {
+ @Override
+ public java.util.List apply(
+ ListWorkRequestErrorsResponse response) {
+ return response.getWorkRequestErrorCollection().getItems();
+ }
+ });
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the responses received from the
+ * listWorkRequestLogs 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 listWorkRequestLogsResponseIterator(
+ final ListWorkRequestLogsRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseIterable<
+ ListWorkRequestLogsRequest.Builder,
+ ListWorkRequestLogsRequest,
+ ListWorkRequestLogsResponse>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListWorkRequestLogsRequest.Builder get() {
+ return ListWorkRequestLogsRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListWorkRequestLogsResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListWorkRequestLogsRequest.Builder>,
+ ListWorkRequestLogsRequest>() {
+ @Override
+ public ListWorkRequestLogsRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListWorkRequestLogsRequest.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<
+ ListWorkRequestLogsRequest, ListWorkRequestLogsResponse>() {
+ @Override
+ public ListWorkRequestLogsResponse apply(ListWorkRequestLogsRequest request) {
+ return client.listWorkRequestLogs(request);
+ }
+ });
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the {@link
+ * com.oracle.bmc.ddfs.model.WorkRequestLogEntry} objects contained in responses from the
+ * listWorkRequestLogs 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.ddfs.model.WorkRequestLogEntry} objects contained in responses received
+ * from the service.
+ */
+ public Iterable
+ listWorkRequestLogsRecordIterator(final ListWorkRequestLogsRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseRecordIterable<
+ ListWorkRequestLogsRequest.Builder,
+ ListWorkRequestLogsRequest,
+ ListWorkRequestLogsResponse,
+ com.oracle.bmc.ddfs.model.WorkRequestLogEntry>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListWorkRequestLogsRequest.Builder get() {
+ return ListWorkRequestLogsRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListWorkRequestLogsResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListWorkRequestLogsRequest.Builder>,
+ ListWorkRequestLogsRequest>() {
+ @Override
+ public ListWorkRequestLogsRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListWorkRequestLogsRequest.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<
+ ListWorkRequestLogsRequest, ListWorkRequestLogsResponse>() {
+ @Override
+ public ListWorkRequestLogsResponse apply(ListWorkRequestLogsRequest request) {
+ return client.listWorkRequestLogs(request);
+ }
+ },
+ new java.util.function.Function<
+ ListWorkRequestLogsResponse,
+ java.util.List>() {
+ @Override
+ public java.util.List apply(
+ ListWorkRequestLogsResponse response) {
+ return response.getWorkRequestLogEntryCollection().getItems();
+ }
+ });
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the responses received from the
+ * listWorkRequests 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 listWorkRequestsResponseIterator(
+ final ListWorkRequestsRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseIterable<
+ ListWorkRequestsRequest.Builder, ListWorkRequestsRequest, ListWorkRequestsResponse>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListWorkRequestsRequest.Builder get() {
+ return ListWorkRequestsRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListWorkRequestsResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListWorkRequestsRequest.Builder>,
+ ListWorkRequestsRequest>() {
+ @Override
+ public ListWorkRequestsRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListWorkRequestsRequest.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<
+ ListWorkRequestsRequest, ListWorkRequestsResponse>() {
+ @Override
+ public ListWorkRequestsResponse apply(ListWorkRequestsRequest request) {
+ return client.listWorkRequests(request);
+ }
+ });
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the {@link
+ * com.oracle.bmc.ddfs.model.WorkRequestSummary} objects contained in responses from the
+ * listWorkRequests 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.ddfs.model.WorkRequestSummary} objects contained in responses received
+ * from the service.
+ */
+ public Iterable listWorkRequestsRecordIterator(
+ final ListWorkRequestsRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseRecordIterable<
+ ListWorkRequestsRequest.Builder,
+ ListWorkRequestsRequest,
+ ListWorkRequestsResponse,
+ com.oracle.bmc.ddfs.model.WorkRequestSummary>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListWorkRequestsRequest.Builder get() {
+ return ListWorkRequestsRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListWorkRequestsResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListWorkRequestsRequest.Builder>,
+ ListWorkRequestsRequest>() {
+ @Override
+ public ListWorkRequestsRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListWorkRequestsRequest.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<
+ ListWorkRequestsRequest, ListWorkRequestsResponse>() {
+ @Override
+ public ListWorkRequestsResponse apply(ListWorkRequestsRequest request) {
+ return client.listWorkRequests(request);
+ }
+ },
+ new java.util.function.Function<
+ ListWorkRequestsResponse,
+ java.util.List>() {
+ @Override
+ public java.util.List apply(
+ ListWorkRequestsResponse response) {
+ return response.getWorkRequestSummaryCollection().getItems();
+ }
+ });
+ }
+}
diff --git a/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstanceWaiters.java b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstanceWaiters.java
new file mode 100644
index 00000000000..86b60fa0b70
--- /dev/null
+++ b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/InstanceWaiters.java
@@ -0,0 +1,181 @@
+/**
+ * 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.ddfs;
+
+import com.oracle.bmc.ddfs.requests.*;
+import com.oracle.bmc.ddfs.responses.*;
+
+/**
+ * Collection of helper methods to produce {@link com.oracle.bmc.waiter.Waiter}s for different
+ * resources of Instance.
+ *
+ * The default configuration used is defined by {@link
+ * com.oracle.bmc.waiter.Waiters.Waiters#DEFAULT_POLLING_WAITER}.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20260831")
+public class InstanceWaiters {
+ private final java.util.concurrent.ExecutorService executorService;
+ private final Instance client;
+
+ public InstanceWaiters(java.util.concurrent.ExecutorService executorService, Instance client) {
+ this.executorService = executorService;
+ this.client = client;
+ }
+
+ /**
+ * 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 forInstance(
+ GetInstanceRequest request,
+ com.oracle.bmc.ddfs.model.Instance.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 forInstance(
+ 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 forInstance(
+ GetInstanceRequest request,
+ com.oracle.bmc.ddfs.model.Instance.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 forInstance(
+ 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 forInstance(
+ GetInstanceRequest request,
+ com.oracle.bmc.waiter.TerminationStrategy terminationStrategy,
+ com.oracle.bmc.waiter.DelayStrategy delayStrategy,
+ com.oracle.bmc.ddfs.model.Instance.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 forInstance(
+ com.oracle.bmc.waiter.Waiters.newWaiter(terminationStrategy, delayStrategy),
+ request,
+ targetStates);
+ }
+
+ // Helper method to create a new Waiter for Instance.
+ private com.oracle.bmc.waiter.Waiter forInstance(
+ com.oracle.bmc.waiter.BmcGenericWaiter waiter,
+ final GetInstanceRequest request,
+ final com.oracle.bmc.ddfs.model.Instance.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() {
+ @Override
+ public GetInstanceResponse apply(GetInstanceRequest request) {
+ return client.getInstance(request);
+ }
+ },
+ new java.util.function.Predicate() {
+ @Override
+ public boolean test(GetInstanceResponse response) {
+ return targetStatesSet.contains(
+ response.getInstance().getLifecycleState());
+ }
+ },
+ targetStatesSet.contains(
+ com.oracle.bmc.ddfs.model.Instance.LifecycleState.Deleted)),
+ request);
+ }
+
+ /**
+ * Creates a new {@link com.oracle.bmc.waiter.Waiter} using default configuration.
+ *
+ * @param request the request to send
+ * @return a new {@code Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter
+ forWorkRequest(GetWorkRequestRequest request) {
+ return forWorkRequest(com.oracle.bmc.waiter.Waiters.DEFAULT_POLLING_WAITER, request);
+ }
+
+ /**
+ * 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 {@linkcom.oracle.bmc.waiter. DelayStrategy} to use
+ * @return a new {@code com.oracle.bmc.waiter.Waiter} instance
+ */
+ public com.oracle.bmc.waiter.Waiter
+ forWorkRequest(
+ GetWorkRequestRequest request,
+ com.oracle.bmc.waiter.TerminationStrategy terminationStrategy,
+ com.oracle.bmc.waiter.DelayStrategy delayStrategy) {
+ return forWorkRequest(
+ com.oracle.bmc.waiter.Waiters.newWaiter(terminationStrategy, delayStrategy),
+ request);
+ }
+
+ // Helper method to create a new Waiter for WorkRequest.
+ private com.oracle.bmc.waiter.Waiter
+ forWorkRequest(
+ com.oracle.bmc.waiter.BmcGenericWaiter waiter,
+ final GetWorkRequestRequest request) {
+ return new com.oracle.bmc.waiter.internal.SimpleWaiterImpl<>(
+ executorService,
+ waiter.toCallable(
+ () -> request,
+ new java.util.function.Function<
+ GetWorkRequestRequest, GetWorkRequestResponse>() {
+ @Override
+ public GetWorkRequestResponse apply(GetWorkRequestRequest request) {
+ return client.getWorkRequest(request);
+ }
+ },
+ new java.util.function.Predicate() {
+ @Override
+ public boolean test(GetWorkRequestResponse response) {
+ // work requests are complete once the time finished is available
+ return response.getWorkRequest().getTimeFinished() != null;
+ }
+ },
+ false),
+ request);
+ }
+}
diff --git a/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/ActionType.java b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/ActionType.java
new file mode 100644
index 00000000000..e272519cd9f
--- /dev/null
+++ b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/ActionType.java
@@ -0,0 +1,56 @@
+/**
+ * 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.ddfs.model;
+
+/** Possible types of actions. */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20260831")
+public enum ActionType implements com.oracle.bmc.http.internal.BmcEnum {
+ Created("CREATED"),
+ Updated("UPDATED"),
+ Deleted("DELETED"),
+ InProgress("IN_PROGRESS"),
+ Related("RELATED"),
+ 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(ActionType.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (ActionType v : ActionType.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ ActionType(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static ActionType create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'ActionType', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+}
diff --git a/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/ChangeInstanceCompartmentDetails.java b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/ChangeInstanceCompartmentDetails.java
new file mode 100644
index 00000000000..90c9a5f5727
--- /dev/null
+++ b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/ChangeInstanceCompartmentDetails.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.ddfs.model;
+
+/**
+ * The configuration details for the move operation.
+ * 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: 20260831")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = ChangeInstanceCompartmentDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class ChangeInstanceCompartmentDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"compartmentId"})
+ public ChangeInstanceCompartmentDetails(String compartmentId) {
+ super();
+ this.compartmentId = compartmentId;
+ }
+
+ @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
+ * compartment to move the Instance to.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private String compartmentId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment to move the Instance to.
+ *
+ * @param compartmentId the value to set
+ * @return this builder
+ */
+ public Builder compartmentId(String compartmentId) {
+ this.compartmentId = compartmentId;
+ this.__explicitlySet__.add("compartmentId");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public ChangeInstanceCompartmentDetails build() {
+ ChangeInstanceCompartmentDetails model =
+ new ChangeInstanceCompartmentDetails(this.compartmentId);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(ChangeInstanceCompartmentDetails model) {
+ if (model.wasPropertyExplicitlySet("compartmentId")) {
+ this.compartmentId(model.getCompartmentId());
+ }
+ 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
+ * compartment to move the Instance to.
+ */
+ @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 to move the Instance to.
+ *
+ * @return the value
+ */
+ public String getCompartmentId() {
+ return compartmentId;
+ }
+
+ @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("ChangeInstanceCompartmentDetails(");
+ sb.append("super=").append(super.toString());
+ sb.append("compartmentId=").append(String.valueOf(this.compartmentId));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof ChangeInstanceCompartmentDetails)) {
+ return false;
+ }
+
+ ChangeInstanceCompartmentDetails other = (ChangeInstanceCompartmentDetails) o;
+ return java.util.Objects.equals(this.compartmentId, other.compartmentId)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result =
+ (result * PRIME)
+ + (this.compartmentId == null ? 43 : this.compartmentId.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/CreateInstanceDetails.java b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/CreateInstanceDetails.java
new file mode 100644
index 00000000000..b853d883d66
--- /dev/null
+++ b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/CreateInstanceDetails.java
@@ -0,0 +1,366 @@
+/**
+ * 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.ddfs.model;
+
+/**
+ * The data to create an Instance.
+ * 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: 20260831")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = CreateInstanceDetails.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CreateInstanceDetails
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "displayName",
+ "idcsUrl",
+ "compartmentId",
+ "freeformTags",
+ "definedTags"
+ })
+ public CreateInstanceDetails(
+ String displayName,
+ String idcsUrl,
+ String compartmentId,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags) {
+ super();
+ this.displayName = displayName;
+ this.idcsUrl = idcsUrl;
+ this.compartmentId = compartmentId;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /**
+ * A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering
+ * confidential information.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering
+ * confidential information.
+ *
+ * @param displayName the value to set
+ * @return this builder
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ this.__explicitlySet__.add("displayName");
+ return this;
+ }
+ /**
+ * The Oracle Identity Cloud Service (IDCS) URL for the identity domain associated with the
+ * instance. Use the IDCS tenant URL from your identity domain configuration.
+ *
+ * Example: {@code https://idcs-1234567890.identity.oraclecloud.com}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("idcsUrl")
+ private String idcsUrl;
+
+ /**
+ * The Oracle Identity Cloud Service (IDCS) URL for the identity domain associated with the
+ * instance. Use the IDCS tenant URL from your identity domain configuration.
+ *
+ *
Example: {@code https://idcs-1234567890.identity.oraclecloud.com}
+ *
+ * @param idcsUrl the value to set
+ * @return this builder
+ */
+ public Builder idcsUrl(String idcsUrl) {
+ this.idcsUrl = idcsUrl;
+ this.__explicitlySet__.add("idcsUrl");
+ return this;
+ }
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment to create the Instance in.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private String compartmentId;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment to create the Instance in.
+ *
+ * @param compartmentId the value to set
+ * @return this builder
+ */
+ public Builder compartmentId(String compartmentId) {
+ this.compartmentId = compartmentId;
+ this.__explicitlySet__.add("compartmentId");
+ 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).
+ *
+ * Example: {@code {"Operations": {"CostCenter": "42"}}}
+ */
+ @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).
+ *
+ * Example: {@code {"Operations": {"CostCenter": "42"}}}
+ *
+ * @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 CreateInstanceDetails build() {
+ CreateInstanceDetails model =
+ new CreateInstanceDetails(
+ this.displayName,
+ this.idcsUrl,
+ this.compartmentId,
+ this.freeformTags,
+ this.definedTags);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CreateInstanceDetails model) {
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("idcsUrl")) {
+ this.idcsUrl(model.getIdcsUrl());
+ }
+ if (model.wasPropertyExplicitlySet("compartmentId")) {
+ this.compartmentId(model.getCompartmentId());
+ }
+ 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);
+ }
+
+ /**
+ * A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering
+ * confidential information.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering
+ * confidential information.
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /**
+ * The Oracle Identity Cloud Service (IDCS) URL for the identity domain associated with the
+ * instance. Use the IDCS tenant URL from your identity domain configuration.
+ *
+ * Example: {@code https://idcs-1234567890.identity.oraclecloud.com}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("idcsUrl")
+ private final String idcsUrl;
+
+ /**
+ * The Oracle Identity Cloud Service (IDCS) URL for the identity domain associated with the
+ * instance. Use the IDCS tenant URL from your identity domain configuration.
+ *
+ *
Example: {@code https://idcs-1234567890.identity.oraclecloud.com}
+ *
+ * @return the value
+ */
+ public String getIdcsUrl() {
+ return idcsUrl;
+ }
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * compartment to create the Instance in.
+ */
+ @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 to create the Instance in.
+ *
+ * @return the value
+ */
+ public String getCompartmentId() {
+ return compartmentId;
+ }
+
+ /**
+ * 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).
+ *
+ * Example: {@code {"Operations": {"CostCenter": "42"}}}
+ */
+ @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).
+ *
+ * Example: {@code {"Operations": {"CostCenter": "42"}}}
+ *
+ * @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("CreateInstanceDetails(");
+ sb.append("super=").append(super.toString());
+ sb.append("displayName=").append(String.valueOf(this.displayName));
+ sb.append(", idcsUrl=").append(String.valueOf(this.idcsUrl));
+ sb.append(", compartmentId=").append(String.valueOf(this.compartmentId));
+ 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 CreateInstanceDetails)) {
+ return false;
+ }
+
+ CreateInstanceDetails other = (CreateInstanceDetails) o;
+ return java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(this.idcsUrl, other.idcsUrl)
+ && java.util.Objects.equals(this.compartmentId, other.compartmentId)
+ && 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.displayName == null ? 43 : this.displayName.hashCode());
+ result = (result * PRIME) + (this.idcsUrl == null ? 43 : this.idcsUrl.hashCode());
+ result =
+ (result * PRIME)
+ + (this.compartmentId == null ? 43 : this.compartmentId.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-ddfs/src/main/java/com/oracle/bmc/ddfs/model/Instance.java b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/Instance.java
new file mode 100644
index 00000000000..5a8eb050b5a
--- /dev/null
+++ b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/Instance.java
@@ -0,0 +1,800 @@
+/**
+ * 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.ddfs.model;
+
+/**
+ * A Device Data FHIR Service instance.
+ *
+ * To use any of the API operations, you must be authorized in an IAM policy. If you're not
+ * authorized, talk to an administrator. If you're an administrator who needs to write policies to
+ * give users access, see [Getting Started with
+ * Policies](https://docs.oracle.com/iaas/Content/Identity/policiesgs/get-started-with-policies.htm).
+ *
+ * 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: 20260831")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = Instance.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class Instance extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "displayName",
+ "compartmentId",
+ "idcsUrl",
+ "publicIp",
+ "fhirServiceEndpoint",
+ "timeCreated",
+ "timeUpdated",
+ "lifecycleState",
+ "lifecycleDetails",
+ "freeformTags",
+ "definedTags",
+ "systemTags"
+ })
+ public Instance(
+ String id,
+ String displayName,
+ String compartmentId,
+ String idcsUrl,
+ String publicIp,
+ String fhirServiceEndpoint,
+ java.util.Date timeCreated,
+ java.util.Date timeUpdated,
+ LifecycleState lifecycleState,
+ String lifecycleDetails,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ java.util.Map> systemTags) {
+ super();
+ this.id = id;
+ this.displayName = displayName;
+ this.compartmentId = compartmentId;
+ this.idcsUrl = idcsUrl;
+ this.publicIp = publicIp;
+ this.fhirServiceEndpoint = fhirServiceEndpoint;
+ this.timeCreated = timeCreated;
+ this.timeUpdated = timeUpdated;
+ this.lifecycleState = lifecycleState;
+ this.lifecycleDetails = lifecycleDetails;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.systemTags = systemTags;
+ }
+
+ @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
+ * Instance.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Instance.
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /** A user-friendly name. Does not have to be unique, and it's changeable. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * A user-friendly name. Does not have to be unique, and it's changeable.
+ *
+ * @param displayName the value to set
+ * @return this builder
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ this.__explicitlySet__.add("displayName");
+ 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 Oracle Identity Cloud Service (IDCS) URL for the identity domain associated with the
+ * instance. Use the IDCS tenant URL from your identity domain configuration.
+ *
+ * Example: {@code https://idcs-1234567890.identity.oraclecloud.com}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("idcsUrl")
+ private String idcsUrl;
+
+ /**
+ * The Oracle Identity Cloud Service (IDCS) URL for the identity domain associated with the
+ * instance. Use the IDCS tenant URL from your identity domain configuration.
+ *
+ *
Example: {@code https://idcs-1234567890.identity.oraclecloud.com}
+ *
+ * @param idcsUrl the value to set
+ * @return this builder
+ */
+ public Builder idcsUrl(String idcsUrl) {
+ this.idcsUrl = idcsUrl;
+ this.__explicitlySet__.add("idcsUrl");
+ return this;
+ }
+ /** The public IP address for the instance's FHIR service endpoint. */
+ @com.fasterxml.jackson.annotation.JsonProperty("publicIp")
+ private String publicIp;
+
+ /**
+ * The public IP address for the instance's FHIR service endpoint.
+ *
+ * @param publicIp the value to set
+ * @return this builder
+ */
+ public Builder publicIp(String publicIp) {
+ this.publicIp = publicIp;
+ this.__explicitlySet__.add("publicIp");
+ return this;
+ }
+ /**
+ * The HTTPS endpoint for the instance's Fast Healthcare Interoperability Resources (FHIR)
+ * service.
+ *
+ *
Example: {@code https://example.ddfs.oraclecloud.com/api/fhir}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("fhirServiceEndpoint")
+ private String fhirServiceEndpoint;
+
+ /**
+ * The HTTPS endpoint for the instance's Fast Healthcare Interoperability Resources (FHIR)
+ * service.
+ *
+ *
Example: {@code https://example.ddfs.oraclecloud.com/api/fhir}
+ *
+ * @param fhirServiceEndpoint the value to set
+ * @return this builder
+ */
+ public Builder fhirServiceEndpoint(String fhirServiceEndpoint) {
+ this.fhirServiceEndpoint = fhirServiceEndpoint;
+ this.__explicitlySet__.add("fhirServiceEndpoint");
+ return this;
+ }
+ /**
+ * The date and time the Instance was created, in the format defined by [RFC
+ * 3339](https://tools.ietf.org/html/rfc3339).
+ *
+ *
Example: {@code 2016-08-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private java.util.Date timeCreated;
+
+ /**
+ * The date and time the Instance was created, in the format defined by [RFC
+ * 3339](https://tools.ietf.org/html/rfc3339).
+ *
+ *
Example: {@code 2016-08-25T21:10:29.600Z}
+ *
+ * @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;
+ }
+ /**
+ * The date and time the Instance was updated, in the format defined by [RFC
+ * 3339](https://tools.ietf.org/html/rfc3339).
+ *
+ *
Example: {@code 2016-08-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private java.util.Date timeUpdated;
+
+ /**
+ * The date and time the Instance was updated, in the format defined by [RFC
+ * 3339](https://tools.ietf.org/html/rfc3339).
+ *
+ *
Example: {@code 2016-08-25T21:10:29.600Z}
+ *
+ * @param timeUpdated the value to set
+ * @return this builder
+ */
+ public Builder timeUpdated(java.util.Date timeUpdated) {
+ this.timeUpdated = timeUpdated;
+ this.__explicitlySet__.add("timeUpdated");
+ return this;
+ }
+ /** The current state of the Instance. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Instance.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder
+ */
+ public Builder lifecycleState(LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ this.__explicitlySet__.add("lifecycleState");
+ return this;
+ }
+ /**
+ * A message that describes the current state of the Instance in more detail. For example,
+ * can be used to provide actionable information for a resource in the Failed state.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private String lifecycleDetails;
+
+ /**
+ * A message that describes the current state of the Instance in more detail. For example,
+ * can be used to provide actionable information for a resource in the Failed state.
+ *
+ * @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).
+ *
+ * Example: {@code {"Operations": {"CostCenter": "42"}}}
+ */
+ @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).
+ *
+ * Example: {@code {"Operations": {"CostCenter": "42"}}}
+ *
+ * @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.
+ *
+ * Example: {@code {"orcl-cloud": {"example-key": "example-value"}}}
+ */
+ @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.
+ *
+ * Example: {@code {"orcl-cloud": {"example-key": "example-value"}}}
+ *
+ * @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;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public Instance build() {
+ Instance model =
+ new Instance(
+ this.id,
+ this.displayName,
+ this.compartmentId,
+ this.idcsUrl,
+ this.publicIp,
+ this.fhirServiceEndpoint,
+ this.timeCreated,
+ this.timeUpdated,
+ this.lifecycleState,
+ this.lifecycleDetails,
+ this.freeformTags,
+ this.definedTags,
+ this.systemTags);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(Instance model) {
+ if (model.wasPropertyExplicitlySet("id")) {
+ this.id(model.getId());
+ }
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("compartmentId")) {
+ this.compartmentId(model.getCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("idcsUrl")) {
+ this.idcsUrl(model.getIdcsUrl());
+ }
+ if (model.wasPropertyExplicitlySet("publicIp")) {
+ this.publicIp(model.getPublicIp());
+ }
+ if (model.wasPropertyExplicitlySet("fhirServiceEndpoint")) {
+ this.fhirServiceEndpoint(model.getFhirServiceEndpoint());
+ }
+ if (model.wasPropertyExplicitlySet("timeCreated")) {
+ this.timeCreated(model.getTimeCreated());
+ }
+ if (model.wasPropertyExplicitlySet("timeUpdated")) {
+ this.timeUpdated(model.getTimeUpdated());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleState")) {
+ this.lifecycleState(model.getLifecycleState());
+ }
+ 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());
+ }
+ 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
+ * Instance.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private final String id;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Instance.
+ *
+ * @return the value
+ */
+ public String getId() {
+ return id;
+ }
+
+ /** A user-friendly name. Does not have to be unique, and it's changeable. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * A user-friendly name. Does not have to be unique, and it's changeable.
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /**
+ * 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 Oracle Identity Cloud Service (IDCS) URL for the identity domain associated with the
+ * instance. Use the IDCS tenant URL from your identity domain configuration.
+ *
+ * Example: {@code https://idcs-1234567890.identity.oraclecloud.com}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("idcsUrl")
+ private final String idcsUrl;
+
+ /**
+ * The Oracle Identity Cloud Service (IDCS) URL for the identity domain associated with the
+ * instance. Use the IDCS tenant URL from your identity domain configuration.
+ *
+ *
Example: {@code https://idcs-1234567890.identity.oraclecloud.com}
+ *
+ * @return the value
+ */
+ public String getIdcsUrl() {
+ return idcsUrl;
+ }
+
+ /** The public IP address for the instance's FHIR service endpoint. */
+ @com.fasterxml.jackson.annotation.JsonProperty("publicIp")
+ private final String publicIp;
+
+ /**
+ * The public IP address for the instance's FHIR service endpoint.
+ *
+ * @return the value
+ */
+ public String getPublicIp() {
+ return publicIp;
+ }
+
+ /**
+ * The HTTPS endpoint for the instance's Fast Healthcare Interoperability Resources (FHIR)
+ * service.
+ *
+ *
Example: {@code https://example.ddfs.oraclecloud.com/api/fhir}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("fhirServiceEndpoint")
+ private final String fhirServiceEndpoint;
+
+ /**
+ * The HTTPS endpoint for the instance's Fast Healthcare Interoperability Resources (FHIR)
+ * service.
+ *
+ *
Example: {@code https://example.ddfs.oraclecloud.com/api/fhir}
+ *
+ * @return the value
+ */
+ public String getFhirServiceEndpoint() {
+ return fhirServiceEndpoint;
+ }
+
+ /**
+ * The date and time the Instance was created, in the format defined by [RFC
+ * 3339](https://tools.ietf.org/html/rfc3339).
+ *
+ *
Example: {@code 2016-08-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private final java.util.Date timeCreated;
+
+ /**
+ * The date and time the Instance was created, in the format defined by [RFC
+ * 3339](https://tools.ietf.org/html/rfc3339).
+ *
+ *
Example: {@code 2016-08-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCreated() {
+ return timeCreated;
+ }
+
+ /**
+ * The date and time the Instance was updated, in the format defined by [RFC
+ * 3339](https://tools.ietf.org/html/rfc3339).
+ *
+ *
Example: {@code 2016-08-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private final java.util.Date timeUpdated;
+
+ /**
+ * The date and time the Instance was updated, in the format defined by [RFC
+ * 3339](https://tools.ietf.org/html/rfc3339).
+ *
+ *
Example: {@code 2016-08-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeUpdated() {
+ return timeUpdated;
+ }
+
+ /** The current state of the Instance. */
+ public enum LifecycleState implements com.oracle.bmc.http.internal.BmcEnum {
+ Creating("CREATING"),
+ Updating("UPDATING"),
+ Active("ACTIVE"),
+ Deleting("DELETING"),
+ Deleted("DELETED"),
+ Failed("FAILED"),
+
+ /**
+ * This value is used if a service returns a value for this enum that is not recognized by
+ * this version of the SDK.
+ */
+ UnknownEnumValue(null);
+
+ private 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 Instance. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private final LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Instance.
+ *
+ * @return the value
+ */
+ public LifecycleState getLifecycleState() {
+ return lifecycleState;
+ }
+
+ /**
+ * A message that describes the current state of the Instance in more detail. For example, can
+ * be used to provide actionable information for a resource in the Failed state.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private final String lifecycleDetails;
+
+ /**
+ * A message that describes the current state of the Instance in more detail. For example, can
+ * be used to provide actionable information for a resource in the Failed state.
+ *
+ * @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).
+ *
+ * Example: {@code {"Operations": {"CostCenter": "42"}}}
+ */
+ @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).
+ *
+ * Example: {@code {"Operations": {"CostCenter": "42"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map> getDefinedTags() {
+ return definedTags;
+ }
+
+ /**
+ * System tags for this resource. Each key is predefined and scoped to a namespace.
+ *
+ * Example: {@code {"orcl-cloud": {"example-key": "example-value"}}}
+ */
+ @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.
+ *
+ * Example: {@code {"orcl-cloud": {"example-key": "example-value"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map> getSystemTags() {
+ return systemTags;
+ }
+
+ @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("Instance(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", displayName=").append(String.valueOf(this.displayName));
+ sb.append(", compartmentId=").append(String.valueOf(this.compartmentId));
+ sb.append(", idcsUrl=").append(String.valueOf(this.idcsUrl));
+ sb.append(", publicIp=").append(String.valueOf(this.publicIp));
+ sb.append(", fhirServiceEndpoint=").append(String.valueOf(this.fhirServiceEndpoint));
+ sb.append(", timeCreated=").append(String.valueOf(this.timeCreated));
+ sb.append(", timeUpdated=").append(String.valueOf(this.timeUpdated));
+ sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState));
+ 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(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof Instance)) {
+ return false;
+ }
+
+ Instance other = (Instance) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(this.compartmentId, other.compartmentId)
+ && java.util.Objects.equals(this.idcsUrl, other.idcsUrl)
+ && java.util.Objects.equals(this.publicIp, other.publicIp)
+ && java.util.Objects.equals(this.fhirServiceEndpoint, other.fhirServiceEndpoint)
+ && java.util.Objects.equals(this.timeCreated, other.timeCreated)
+ && java.util.Objects.equals(this.timeUpdated, other.timeUpdated)
+ && java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
+ && 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)
+ && 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.displayName == null ? 43 : this.displayName.hashCode());
+ result =
+ (result * PRIME)
+ + (this.compartmentId == null ? 43 : this.compartmentId.hashCode());
+ result = (result * PRIME) + (this.idcsUrl == null ? 43 : this.idcsUrl.hashCode());
+ result = (result * PRIME) + (this.publicIp == null ? 43 : this.publicIp.hashCode());
+ result =
+ (result * PRIME)
+ + (this.fhirServiceEndpoint == null
+ ? 43
+ : this.fhirServiceEndpoint.hashCode());
+ result = (result * PRIME) + (this.timeCreated == null ? 43 : this.timeCreated.hashCode());
+ result = (result * PRIME) + (this.timeUpdated == null ? 43 : this.timeUpdated.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lifecycleState == null ? 43 : this.lifecycleState.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) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/InstanceCollection.java b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/InstanceCollection.java
new file mode 100644
index 00000000000..5f7aa74a0c9
--- /dev/null
+++ b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/InstanceCollection.java
@@ -0,0 +1,134 @@
+/**
+ * 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.ddfs.model;
+
+/**
+ * Results of an instance search. Contains both InstanceSummary items and other information, such as
+ * metadata.
+ * 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: 20260831")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = InstanceCollection.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class InstanceCollection
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"items"})
+ public InstanceCollection(java.util.List items) {
+ super();
+ this.items = items;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** List of instances. */
+ @com.fasterxml.jackson.annotation.JsonProperty("items")
+ private java.util.List items;
+
+ /**
+ * List of instances.
+ *
+ * @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 InstanceCollection build() {
+ InstanceCollection model = new InstanceCollection(this.items);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(InstanceCollection 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);
+ }
+
+ /** List of instances. */
+ @com.fasterxml.jackson.annotation.JsonProperty("items")
+ private final java.util.List items;
+
+ /**
+ * List of instances.
+ *
+ * @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("InstanceCollection(");
+ 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 InstanceCollection)) {
+ return false;
+ }
+
+ InstanceCollection other = (InstanceCollection) 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-ddfs/src/main/java/com/oracle/bmc/ddfs/model/InstanceSummary.java b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/InstanceSummary.java
new file mode 100644
index 00000000000..68c22757165
--- /dev/null
+++ b/bmc-ddfs/src/main/java/com/oracle/bmc/ddfs/model/InstanceSummary.java
@@ -0,0 +1,649 @@
+/**
+ * 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.ddfs.model;
+
+/**
+ * Summary information about an Instance.
+ * 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: 20260831")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = InstanceSummary.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class InstanceSummary
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "displayName",
+ "compartmentId",
+ "idcsUrl",
+ "timeCreated",
+ "timeUpdated",
+ "lifecycleState",
+ "lifecycleDetails",
+ "freeformTags",
+ "definedTags",
+ "systemTags"
+ })
+ public InstanceSummary(
+ String id,
+ String displayName,
+ String compartmentId,
+ String idcsUrl,
+ java.util.Date timeCreated,
+ java.util.Date timeUpdated,
+ Instance.LifecycleState lifecycleState,
+ String lifecycleDetails,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ java.util.Map> systemTags) {
+ super();
+ this.id = id;
+ this.displayName = displayName;
+ this.compartmentId = compartmentId;
+ this.idcsUrl = idcsUrl;
+ this.timeCreated = timeCreated;
+ this.timeUpdated = timeUpdated;
+ this.lifecycleState = lifecycleState;
+ this.lifecycleDetails = lifecycleDetails;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.systemTags = systemTags;
+ }
+
+ @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
+ * Instance.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the
+ * Instance.
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /** A user-friendly name. Does not have to be unique, and it's changeable. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * A user-friendly name. Does not have to be unique, and it's changeable.
+ *
+ * @param displayName the value to set
+ * @return this builder
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ this.__explicitlySet__.add("displayName");
+ 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 Oracle Identity Cloud Service (IDCS) URL for the identity domain associated with the
+ * instance. Use the IDCS tenant URL from your identity domain configuration.
+ *
+ * Example: {@code https://idcs-1234567890.identity.oraclecloud.com}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("idcsUrl")
+ private String idcsUrl;
+
+ /**
+ * The Oracle Identity Cloud Service (IDCS) URL for the identity domain associated with the
+ * instance. Use the IDCS tenant URL from your identity domain configuration.
+ *
+ *
Example: {@code https://idcs-1234567890.identity.oraclecloud.com}
+ *
+ * @param idcsUrl the value to set
+ * @return this builder
+ */
+ public Builder idcsUrl(String idcsUrl) {
+ this.idcsUrl = idcsUrl;
+ this.__explicitlySet__.add("idcsUrl");
+ return this;
+ }
+ /**
+ * The date and time the Instance was created, in the format defined by [RFC
+ * 3339](https://tools.ietf.org/html/rfc3339).
+ *
+ *
Example: {@code 2016-08-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private java.util.Date timeCreated;
+
+ /**
+ * The date and time the Instance was created, in the format defined by [RFC
+ * 3339](https://tools.ietf.org/html/rfc3339).
+ *
+ *
Example: {@code 2016-08-25T21:10:29.600Z}
+ *
+ * @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;
+ }
+ /**
+ * The date and time the Instance was updated, in the format defined by [RFC
+ * 3339](https://tools.ietf.org/html/rfc3339).
+ *
+ *
Example: {@code 2016-08-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private java.util.Date timeUpdated;
+
+ /**
+ * The date and time the Instance was updated, in the format defined by [RFC
+ * 3339](https://tools.ietf.org/html/rfc3339).
+ *
+ *
Example: {@code 2016-08-25T21:10:29.600Z}
+ *
+ * @param timeUpdated the value to set
+ * @return this builder
+ */
+ public Builder timeUpdated(java.util.Date timeUpdated) {
+ this.timeUpdated = timeUpdated;
+ this.__explicitlySet__.add("timeUpdated");
+ return this;
+ }
+ /** The current state of the Instance. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private Instance.LifecycleState lifecycleState;
+
+ /**
+ * The current state of the Instance.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder
+ */
+ public Builder lifecycleState(Instance.LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ this.__explicitlySet__.add("lifecycleState");
+ return this;
+ }
+ /**
+ * A message that describes the current state of the Instance in more detail. For example,
+ * can be used to provide actionable information for a resource in the Failed state.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private String lifecycleDetails;
+
+ /**
+ * A message that describes the current state of the Instance in more detail. For example,
+ * can be used to provide actionable information for a resource in the Failed state.
+ *
+ * @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).
+ *
+ * Example: {@code {"Operations": {"CostCenter": "42"}}}
+ */
+ @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).
+ *
+ * Example: {@code {"Operations": {"CostCenter": "42"}}}
+ *
+ * @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.
+ *
+ *