diff --git a/bmc-addons/bmc-resteasy-client-configurator/pom.xml b/bmc-addons/bmc-resteasy-client-configurator/pom.xml
index 541e3b1ed0c..2d22047b07a 100644
--- a/bmc-addons/bmc-resteasy-client-configurator/pom.xml
+++ b/bmc-addons/bmc-resteasy-client-configurator/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk-addons
- 3.97.2
+ 3.98.0
../pom.xml
@@ -23,7 +23,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-addons/bmc-sasl-oke-workload-identity/pom.xml b/bmc-addons/bmc-sasl-oke-workload-identity/pom.xml
index 69c8f554c11..813f24e9034 100644
--- a/bmc-addons/bmc-sasl-oke-workload-identity/pom.xml
+++ b/bmc-addons/bmc-sasl-oke-workload-identity/pom.xml
@@ -4,7 +4,7 @@
oci-java-sdk-addons
com.oracle.oci.sdk
- 3.97.2
+ 3.98.0
../pom.xml
4.0.0
@@ -39,13 +39,13 @@
com.oracle.oci.sdk
oci-java-sdk-addons-sasl
- 3.97.2
+ 3.98.0
compile
com.oracle.oci.sdk
oci-java-sdk-addons-oke-workload-identity
- 3.97.2
+ 3.98.0
compile
diff --git a/bmc-addons/bmc-sasl/pom.xml b/bmc-addons/bmc-sasl/pom.xml
index 689bed53d7c..c97d99fa1e5 100644
--- a/bmc-addons/bmc-sasl/pom.xml
+++ b/bmc-addons/bmc-sasl/pom.xml
@@ -5,7 +5,7 @@
com.oracle.oci.sdk
oci-java-sdk-addons
- 3.97.2
+ 3.98.0
../pom.xml
@@ -61,7 +61,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
diff --git a/bmc-addons/bmc-sse-support-jersey3/pom.xml b/bmc-addons/bmc-sse-support-jersey3/pom.xml
index 1a0f467ad28..87406c7b261 100644
--- a/bmc-addons/bmc-sse-support-jersey3/pom.xml
+++ b/bmc-addons/bmc-sse-support-jersey3/pom.xml
@@ -5,7 +5,7 @@
oci-java-sdk-addons
com.oracle.oci.sdk
- 3.97.2
+ 3.98.0
../pom.xml
4.0.0
@@ -150,12 +150,12 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
com.oracle.oci.sdk
oci-java-sdk-generativeaiinference
- 3.97.2
+ 3.98.0
test
@@ -164,7 +164,7 @@
but the code in it needs it. -->
com.oracle.oci.sdk
oci-java-sdk-common-httpclient-jersey3
- 3.97.2
+ 3.98.0
diff --git a/bmc-addons/bmc-sse-support/pom.xml b/bmc-addons/bmc-sse-support/pom.xml
index 87b9998a100..f04db2207ec 100644
--- a/bmc-addons/bmc-sse-support/pom.xml
+++ b/bmc-addons/bmc-sse-support/pom.xml
@@ -5,7 +5,7 @@
oci-java-sdk-addons
com.oracle.oci.sdk
- 3.97.2
+ 3.98.0
../pom.xml
4.0.0
@@ -150,12 +150,12 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
com.oracle.oci.sdk
oci-java-sdk-generativeaiinference
- 3.97.2
+ 3.98.0
test
@@ -164,7 +164,7 @@
but the code in it needs it. -->
com.oracle.oci.sdk
oci-java-sdk-common-httpclient-jersey
- 3.97.2
+ 3.98.0
diff --git a/bmc-addons/pom.xml b/bmc-addons/pom.xml
index 00b565aba05..445a320229a 100644
--- a/bmc-addons/pom.xml
+++ b/bmc-addons/pom.xml
@@ -5,7 +5,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
diff --git a/bmc-adm/pom.xml b/bmc-adm/pom.xml
index 2d77e26e807..137df85f569 100644
--- a/bmc-adm/pom.xml
+++ b/bmc-adm/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-adm
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-aidataplatform/pom.xml b/bmc-aidataplatform/pom.xml
index f0c55d9ec6b..69036fa3285 100644
--- a/bmc-aidataplatform/pom.xml
+++ b/bmc-aidataplatform/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-aidataplatform
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-aidocument/pom.xml b/bmc-aidocument/pom.xml
index ab0a19be678..b8acf101921 100644
--- a/bmc-aidocument/pom.xml
+++ b/bmc-aidocument/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-aidocument
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-ailanguage/pom.xml b/bmc-ailanguage/pom.xml
index 7e5e87f9804..585382427a0 100644
--- a/bmc-ailanguage/pom.xml
+++ b/bmc-ailanguage/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-ailanguage
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-aispeech/pom.xml b/bmc-aispeech/pom.xml
index 41ddddf9405..51544b4c32b 100644
--- a/bmc-aispeech/pom.xml
+++ b/bmc-aispeech/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-aispeech
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-aivision/pom.xml b/bmc-aivision/pom.xml
index 3ebc3f8767a..90539c0479d 100644
--- a/bmc-aivision/pom.xml
+++ b/bmc-aivision/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-aivision
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-analytics/pom.xml b/bmc-analytics/pom.xml
index 14167c5b1b2..b3cab4b6208 100644
--- a/bmc-analytics/pom.xml
+++ b/bmc-analytics/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-analytics
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-announcementsservice/pom.xml b/bmc-announcementsservice/pom.xml
index 2d5fc588bb6..3e6b756d718 100644
--- a/bmc-announcementsservice/pom.xml
+++ b/bmc-announcementsservice/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-announcementsservice
@@ -16,7 +16,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-apiaccesscontrol/pom.xml b/bmc-apiaccesscontrol/pom.xml
index e1dcd98f107..42cba373f8a 100644
--- a/bmc-apiaccesscontrol/pom.xml
+++ b/bmc-apiaccesscontrol/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-apiaccesscontrol
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-apigateway/pom.xml b/bmc-apigateway/pom.xml
index 69c4c1e6035..e18275619ea 100644
--- a/bmc-apigateway/pom.xml
+++ b/bmc-apigateway/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-apigateway
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-apiplatform/pom.xml b/bmc-apiplatform/pom.xml
index 3901ed1e4a7..3f2fb644237 100644
--- a/bmc-apiplatform/pom.xml
+++ b/bmc-apiplatform/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-apiplatform
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-apmconfig/pom.xml b/bmc-apmconfig/pom.xml
index d3e5e1a4535..9215eeebb76 100644
--- a/bmc-apmconfig/pom.xml
+++ b/bmc-apmconfig/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-apmconfig
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-apmcontrolplane/pom.xml b/bmc-apmcontrolplane/pom.xml
index 42c0e517462..da52d4efaec 100644
--- a/bmc-apmcontrolplane/pom.xml
+++ b/bmc-apmcontrolplane/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-apmcontrolplane
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-apmsynthetics/pom.xml b/bmc-apmsynthetics/pom.xml
index d75c9916365..496f792cefc 100644
--- a/bmc-apmsynthetics/pom.xml
+++ b/bmc-apmsynthetics/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-apmsynthetics
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-apmtraces/pom.xml b/bmc-apmtraces/pom.xml
index 277517e1b63..5c48aa13f06 100644
--- a/bmc-apmtraces/pom.xml
+++ b/bmc-apmtraces/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-apmtraces
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-appmgmtcontrol/pom.xml b/bmc-appmgmtcontrol/pom.xml
index 11b8c5ff749..b69868cd1d2 100644
--- a/bmc-appmgmtcontrol/pom.xml
+++ b/bmc-appmgmtcontrol/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-appmgmtcontrol
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-artifacts/pom.xml b/bmc-artifacts/pom.xml
index 9c449618592..2182df6735e 100644
--- a/bmc-artifacts/pom.xml
+++ b/bmc-artifacts/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-artifacts
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-audit/pom.xml b/bmc-audit/pom.xml
index 564a77850a5..e6b5e3aee16 100644
--- a/bmc-audit/pom.xml
+++ b/bmc-audit/pom.xml
@@ -5,7 +5,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
@@ -18,7 +18,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
diff --git a/bmc-autoscaling/pom.xml b/bmc-autoscaling/pom.xml
index 6aa84589acb..fbc894fef86 100644
--- a/bmc-autoscaling/pom.xml
+++ b/bmc-autoscaling/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-autoscaling
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-bastion/pom.xml b/bmc-bastion/pom.xml
index a76138aa8e5..b3332a97f43 100644
--- a/bmc-bastion/pom.xml
+++ b/bmc-bastion/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-bastion
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-batch/pom.xml b/bmc-batch/pom.xml
index 4b79d907985..ca82d60d0a4 100644
--- a/bmc-batch/pom.xml
+++ b/bmc-batch/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-batch
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-bds/pom.xml b/bmc-bds/pom.xml
index ad106c60de3..47a64b7095f 100644
--- a/bmc-bds/pom.xml
+++ b/bmc-bds/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-bds
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-blockchain/pom.xml b/bmc-blockchain/pom.xml
index e4903b6231e..8c98fd14aba 100644
--- a/bmc-blockchain/pom.xml
+++ b/bmc-blockchain/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-blockchain
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-bom/pom.xml b/bmc-bom/pom.xml
index 68107c5b861..abe5be7ab96 100644
--- a/bmc-bom/pom.xml
+++ b/bmc-bom/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.oracle.oci.sdk
- 3.97.2
+ 3.98.0
oci-java-sdk-bom
pom
Oracle Cloud Infrastructure SDK - BOM
@@ -38,1135 +38,1141 @@
com.oracle.oci.sdk
oci-java-sdk-circuitbreaker
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-common-httpclient
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-common-httpclient-jersey
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-common-httpclient-jersey3
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-enforcer-rules
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-shaded-full
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-audit
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-containerengine
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-core
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-database
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-dns
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-email
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-objectstorage-generated
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-objectstorage-extensions
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-filestorage
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-identity
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-loadbalancer
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-objectstorage
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-addons-apache-configurator-jersey
- 3.97.2
+ 3.98.0
com.oracle.oci.sdk
oci-java-sdk-addons-apache-configurator-jersey3
- 3.97.2
+ 3.98.0
com.oracle.oci.sdk
oci-java-sdk-addons-resteasy-client-configurator
- 3.97.2
+ 3.98.0
com.oracle.oci.sdk
oci-java-sdk-addons-sasl
- 3.97.2
+ 3.98.0
com.oracle.oci.sdk
oci-java-sdk-addons-oke-workload-identity
- 3.97.2
+ 3.98.0
com.oracle.oci.sdk
oci-java-sdk-addons-sasl-oke-workload-identity
- 3.97.2
+ 3.98.0
com.oracle.oci.sdk
oci-java-sdk-addons-aispeech-realtime
- 3.97.2
+ 3.98.0
com.oracle.oci.sdk
oci-java-sdk-resourcesearch
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-addons-apache
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-keymanagement
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-announcementsservice
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-healthchecks
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-waas
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-streaming
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-resourcemanager
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-monitoring
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-ons
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-autoscaling
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-budget
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-workrequests
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-limits
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-functions
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-events
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-oce
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-oda
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-analytics
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-integration
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-marketplace
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-apigateway
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-datacatalog
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-dataflow
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-datascience
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-nosql
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-secrets
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-vault
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-bds
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-encryption
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-cims
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-datasafe
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-mysql
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-dataintegration
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-ocvp
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-usageapi
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-blockchain
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-loggingingestion
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-logging
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-loganalytics
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-managementdashboard
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-sch
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-loggingsearch
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-managementagent
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-cloudguard
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-opsi
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-computeinstanceagent
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-optimizer
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-tenantmanagercontrolplane
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-rover
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-databasemanagement
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-artifacts
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-apmsynthetics
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-goldengate
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-apmcontrolplane
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-apmtraces
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-networkloadbalancer
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-vulnerabilityscanning
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-databasemigration
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-servicecatalog
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-ailanguage
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-operatoraccesscontrol
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-bastion
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-genericartifactscontent
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-jms
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-devops
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-datalabelingservice
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-datalabelingservicedataplane
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-apmconfig
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-waf
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-certificates
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-certificatesmanagement
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-usage
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-databasetools
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-servicemanagerproxy
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-appmgmtcontrol
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-ospgateway
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-identitydataplane
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-visualbuilder
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-osubusage
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-osubsubscription
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-osuborganizationsubscription
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-osubbillingschedule
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-dashboardservice
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-threatintelligence
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-aivision
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-aispeech
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-stackmonitoring
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-adm
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-licensemanager
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-onesubscription
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-governancerulescontrolplane
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-waa
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-networkfirewall
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-vnmonitoring
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-emwarehouse
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-lockbox
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-fusionapps
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-mediaservices
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-opa
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-opensearch
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-cloudmigrations
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-cloudbridge
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-disasterrecovery
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-containerinstances
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-aidocument
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-queue
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-recovery
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-vbsinst
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-identitydomains
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-accessgovernancecp
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-ocicontrolcenter
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-osmanagementhub
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-fleetsoftwareupdate
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-computecloudatcustomer
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-marketplacepublisher
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-redis
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-jmsjavadownloads
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-psql
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-generativeai
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-generativeaiinference
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-capacitymanagement
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-desktops
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-emaildataplane
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-clusterplacementgroups
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-resourcescheduler
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-demandsignal
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-fleetappsmanagement
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-delegateaccesscontrol
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-generativeaiagent
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-generativeaiagentruntime
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-securityattribute
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-zpr
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-dblm
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-mngdmac
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-lustrefilestorage
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-modeldeployment
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-apiaccesscontrol
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-wlms
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-addons-adk
- 3.97.2
+ 3.98.0
com.oracle.oci.sdk
oci-java-sdk-dbmulticloud
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-apiplatform
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-managedkafka
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-aidataplatform
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-multicloud
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-resourceanalytics
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-jmsutils
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-iot
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-psa
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-dif
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-batch
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-marketplaceprivateoffer
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-gdp
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-limitsincrease
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-generativeaidata
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-self
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-containerregistry
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-databasetoolsruntime
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-costad
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-datacc
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-ddfs
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-clusterhealth
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-distributeddatabase
- 3.97.2
+ 3.98.0
false
com.oracle.oci.sdk
oci-java-sdk-ociproductcatalog
- 3.97.2
+ 3.98.0
+ false
+
+
+ com.oracle.oci.sdk
+ oci-java-sdk-ccdoffers
+ 3.98.0
false
diff --git a/bmc-budget/pom.xml b/bmc-budget/pom.xml
index 7ab89167357..3ba9ffabe28 100644
--- a/bmc-budget/pom.xml
+++ b/bmc-budget/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-budget
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-capacitymanagement/pom.xml b/bmc-capacitymanagement/pom.xml
index 05c9122fcd3..113a42fdfd1 100644
--- a/bmc-capacitymanagement/pom.xml
+++ b/bmc-capacitymanagement/pom.xml
@@ -4,7 +4,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 3.97.2
+ 3.98.0
../pom.xml
oci-java-sdk-capacitymanagement
@@ -15,7 +15,7 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 3.97.2
+ 3.98.0
\ No newline at end of file
diff --git a/bmc-ccdoffers/pom.xml b/bmc-ccdoffers/pom.xml
new file mode 100644
index 00000000000..42381e3564c
--- /dev/null
+++ b/bmc-ccdoffers/pom.xml
@@ -0,0 +1,21 @@
+
+
+ 4.0.0
+
+ com.oracle.oci.sdk
+ oci-java-sdk
+ 3.98.0
+ ../pom.xml
+
+ oci-java-sdk-ccdoffers
+ Oracle Cloud Infrastructure SDK - Ccd Offers
+ This project contains the SDK used for Oracle Cloud Infrastructure Ccd Offers
+ https://docs.cloud.oracle.com/Content/API/SDKDocs/javasdk.htm
+
+
+ com.oracle.oci.sdk
+ oci-java-sdk-common
+ 3.98.0
+
+
+
\ No newline at end of file
diff --git a/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitments.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitments.java
new file mode 100644
index 00000000000..0f837c89878
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitments.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.ccdoffers;
+
+import com.oracle.bmc.ccdoffers.requests.*;
+import com.oracle.bmc.ccdoffers.responses.*;
+
+/**
+ * Use the Continuous Consumption Discounts API to manage continuous consumption discount
+ * operations. 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: 20240601")
+public interface CcdCommitments 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);
+
+ /**
+ * Request to create a new CCD commitment.
+ *
+ * @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 CreateCcdCommitment
+ * API.
+ */
+ CreateCcdCommitmentResponse createCcdCommitment(CreateCcdCommitmentRequest request);
+
+ /**
+ * Terminates the CCD commitment. You can't terminate an already canceled or ended commitment.
+ * If the CCD commitment has already started based on `timeCcdCommitmentStarts`, then you can
+ * only terminate within a week of its effective `timeCcdCommitmentStarts` time.
+ *
+ * @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 DeleteCcdCommitment
+ * API.
+ */
+ DeleteCcdCommitmentResponse deleteCcdCommitment(DeleteCcdCommitmentRequest request);
+
+ /**
+ * Gets the CCD commitment using the CCD commitment ID.
+ *
+ * @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 GetCcdCommitment
+ * API.
+ */
+ GetCcdCommitmentResponse getCcdCommitment(GetCcdCommitmentRequest request);
+
+ /**
+ * Lists the CCD commitments.
+ *
+ * @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 ListCcdCommitments
+ * API.
+ */
+ ListCcdCommitmentsResponse listCcdCommitments(ListCcdCommitmentsRequest request);
+
+ /**
+ * Updates the free-form tags, defined tags, or both on a CCD commitment. Commercial commitment
+ * attributes are immutable.
+ *
+ * @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 UpdateCcdCommitment
+ * API.
+ */
+ UpdateCcdCommitmentResponse updateCcdCommitment(UpdateCcdCommitmentRequest request);
+
+ /**
+ * Gets the pre-configured waiters available for resources for this service.
+ *
+ * @return The service waiters.
+ */
+ CcdCommitmentsWaiters 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.
+ */
+ CcdCommitmentsPaginators getPaginators();
+}
diff --git a/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsAsync.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsAsync.java
new file mode 100644
index 00000000000..925f12bb10b
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsAsync.java
@@ -0,0 +1,146 @@
+/**
+ * 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.ccdoffers;
+
+import com.oracle.bmc.ccdoffers.requests.*;
+import com.oracle.bmc.ccdoffers.responses.*;
+
+/**
+ * Use the Continuous Consumption Discounts API to manage continuous consumption discount
+ * operations.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20240601")
+public interface CcdCommitmentsAsync 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);
+
+ /**
+ * Request to create a new CCD commitment.
+ *
+ * @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 createCcdCommitment(
+ CreateCcdCommitmentRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ CreateCcdCommitmentRequest, CreateCcdCommitmentResponse>
+ handler);
+
+ /**
+ * Terminates the CCD commitment. You can't terminate an already canceled or ended commitment.
+ * If the CCD commitment has already started based on `timeCcdCommitmentStarts`, then you can
+ * only terminate within a week of its effective `timeCcdCommitmentStarts` time.
+ *
+ * @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 deleteCcdCommitment(
+ DeleteCcdCommitmentRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ DeleteCcdCommitmentRequest, DeleteCcdCommitmentResponse>
+ handler);
+
+ /**
+ * Gets the CCD commitment using the CCD commitment ID.
+ *
+ * @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 getCcdCommitment(
+ GetCcdCommitmentRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+
+ /**
+ * Lists the CCD commitments.
+ *
+ * @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 listCcdCommitments(
+ ListCcdCommitmentsRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ ListCcdCommitmentsRequest, ListCcdCommitmentsResponse>
+ handler);
+
+ /**
+ * Updates the free-form tags, defined tags, or both on a CCD commitment. Commercial commitment
+ * attributes are immutable.
+ *
+ * @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 updateCcdCommitment(
+ UpdateCcdCommitmentRequest request,
+ com.oracle.bmc.responses.AsyncHandler<
+ UpdateCcdCommitmentRequest, UpdateCcdCommitmentResponse>
+ handler);
+}
diff --git a/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsAsyncClient.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsAsyncClient.java
new file mode 100644
index 00000000000..1379d09879e
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsAsyncClient.java
@@ -0,0 +1,413 @@
+/**
+ * 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.ccdoffers;
+
+import com.oracle.bmc.util.internal.Validate;
+import com.oracle.bmc.ccdoffers.requests.*;
+import com.oracle.bmc.ccdoffers.responses.*;
+
+import java.util.Objects;
+
+/**
+ * Async client implementation for CcdCommitments 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: 20240601")
+public class CcdCommitmentsAsyncClient extends com.oracle.bmc.http.internal.BaseAsyncClient
+ implements CcdCommitmentsAsync {
+ /** Service instance for CcdCommitments. */
+ public static final com.oracle.bmc.Service SERVICE =
+ com.oracle.bmc.Services.serviceBuilder()
+ .serviceName(CcdCommitmentsClient.class.getName())
+ .serviceEndpointPrefix("")
+ .serviceEndpointTemplate("https://ccdOffers.{region}.oci.{secondLevelDomain}")
+ .build();
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(CcdCommitmentsAsyncClient.class);
+
+ CcdCommitmentsAsyncClient(
+ 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<
+ Builder, CcdCommitmentsAsyncClient> {
+ private Builder(com.oracle.bmc.Service service) {
+ super(service);
+ final String packageName = "ccdoffers";
+ 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 CcdCommitmentsAsyncClient build(
+ @jakarta.annotation.Nonnull
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ return new CcdCommitmentsAsyncClient(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 createCcdCommitment(
+ CreateCcdCommitmentRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ CreateCcdCommitmentRequest, CreateCcdCommitmentResponse>
+ handler) {
+ Objects.requireNonNull(request.getCcdOfferId(), "ccdOfferId is required");
+
+ Objects.requireNonNull(
+ request.getCreateCcdCommitmentDetails(), "createCcdCommitmentDetails is required");
+
+ return clientCall(request, CreateCcdCommitmentResponse::builder)
+ .logger(LOG, "createCcdCommitment")
+ .serviceDetails("CcdCommitments", "CreateCcdCommitment", "")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CreateCcdCommitmentRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdCommitments")
+ .appendQueryParam("ccdOfferId", request.getCcdOfferId())
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.ccdoffers.model.CcdCommitment.class,
+ CreateCcdCommitmentResponse.Builder::ccdCommitment)
+ .handleResponseHeaderString(
+ "opc-request-id", CreateCcdCommitmentResponse.Builder::opcRequestId)
+ .handleResponseHeaderString("etag", CreateCcdCommitmentResponse.Builder::etag)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future deleteCcdCommitment(
+ DeleteCcdCommitmentRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ DeleteCcdCommitmentRequest, DeleteCcdCommitmentResponse>
+ handler) {
+
+ Validate.notBlank(request.getCcdCommitmentId(), "ccdCommitmentId must not be blank");
+
+ return clientCall(request, DeleteCcdCommitmentResponse::builder)
+ .logger(LOG, "deleteCcdCommitment")
+ .serviceDetails("CcdCommitments", "DeleteCcdCommitment", "")
+ .method(com.oracle.bmc.http.client.Method.DELETE)
+ .requestBuilder(DeleteCcdCommitmentRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdCommitments")
+ .appendPathParam(request.getCcdCommitmentId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .appendHeader("if-match", request.getIfMatch())
+ .handleResponseHeaderString(
+ "opc-request-id", DeleteCcdCommitmentResponse.Builder::opcRequestId)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future getCcdCommitment(
+ GetCcdCommitmentRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ GetCcdCommitmentRequest, GetCcdCommitmentResponse>
+ handler) {
+
+ Validate.notBlank(request.getCcdCommitmentId(), "ccdCommitmentId must not be blank");
+
+ return clientCall(request, GetCcdCommitmentResponse::builder)
+ .logger(LOG, "getCcdCommitment")
+ .serviceDetails("CcdCommitments", "GetCcdCommitment", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetCcdCommitmentRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdCommitments")
+ .appendPathParam(request.getCcdCommitmentId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.ccdoffers.model.CcdCommitment.class,
+ GetCcdCommitmentResponse.Builder::ccdCommitment)
+ .handleResponseHeaderString(
+ "opc-request-id", GetCcdCommitmentResponse.Builder::opcRequestId)
+ .handleResponseHeaderString("etag", GetCcdCommitmentResponse.Builder::etag)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future listCcdCommitments(
+ ListCcdCommitmentsRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ ListCcdCommitmentsRequest, ListCcdCommitmentsResponse>
+ handler) {
+ Objects.requireNonNull(request.getSubscriptionId(), "subscriptionId is required");
+
+ Objects.requireNonNull(request.getCompartmentId(), "compartmentId is required");
+
+ return clientCall(request, ListCcdCommitmentsResponse::builder)
+ .logger(LOG, "listCcdCommitments")
+ .serviceDetails("CcdCommitments", "ListCcdCommitments", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListCcdCommitmentsRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdCommitments")
+ .appendQueryParam("subscriptionId", request.getSubscriptionId())
+ .appendQueryParam("page", request.getPage())
+ .appendQueryParam("limit", request.getLimit())
+ .appendEnumQueryParam("lifecycleState", request.getLifecycleState())
+ .appendEnumQueryParam("lifecycleDetails", request.getLifecycleDetails())
+ .appendEnumQueryParam("sourceType", request.getSourceType())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendQueryParam("displayName", request.getDisplayName())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .appendQueryParam("compartmentId", request.getCompartmentId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.ccdoffers.model.CcdCommitmentCollection.class,
+ ListCcdCommitmentsResponse.Builder::ccdCommitmentCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListCcdCommitmentsResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListCcdCommitmentsResponse.Builder::opcNextPage)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future updateCcdCommitment(
+ UpdateCcdCommitmentRequest request,
+ final com.oracle.bmc.responses.AsyncHandler<
+ UpdateCcdCommitmentRequest, UpdateCcdCommitmentResponse>
+ handler) {
+
+ Validate.notBlank(request.getCcdCommitmentId(), "ccdCommitmentId must not be blank");
+ Objects.requireNonNull(
+ request.getUpdateCcdCommitmentDetails(), "updateCcdCommitmentDetails is required");
+
+ return clientCall(request, UpdateCcdCommitmentResponse::builder)
+ .logger(LOG, "updateCcdCommitment")
+ .serviceDetails("CcdCommitments", "UpdateCcdCommitment", "")
+ .method(com.oracle.bmc.http.client.Method.PUT)
+ .requestBuilder(UpdateCcdCommitmentRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdCommitments")
+ .appendPathParam(request.getCcdCommitmentId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .appendHeader("if-match", request.getIfMatch())
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.ccdoffers.model.CcdCommitment.class,
+ UpdateCcdCommitmentResponse.Builder::ccdCommitment)
+ .handleResponseHeaderString(
+ "opc-request-id", UpdateCcdCommitmentResponse.Builder::opcRequestId)
+ .handleResponseHeaderString("etag", UpdateCcdCommitmentResponse.Builder::etag)
+ .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 CcdCommitmentsAsyncClient(
+ 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 CcdCommitmentsAsyncClient(
+ 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 CcdCommitmentsAsyncClient(
+ 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 CcdCommitmentsAsyncClient(
+ 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 CcdCommitmentsAsyncClient(
+ 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 CcdCommitmentsAsyncClient(
+ 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 CcdCommitmentsAsyncClient(
+ 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-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsClient.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsClient.java
new file mode 100644
index 00000000000..22598566a43
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsClient.java
@@ -0,0 +1,480 @@
+/**
+ * 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.ccdoffers;
+
+import com.oracle.bmc.util.internal.Validate;
+import com.oracle.bmc.ccdoffers.requests.*;
+import com.oracle.bmc.ccdoffers.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: 20240601")
+public class CcdCommitmentsClient extends com.oracle.bmc.http.internal.BaseSyncClient
+ implements CcdCommitments {
+ /** Service instance for CcdCommitments. */
+ public static final com.oracle.bmc.Service SERVICE =
+ com.oracle.bmc.Services.serviceBuilder()
+ .serviceName(CcdCommitmentsClient.class.getName())
+ .serviceEndpointPrefix("")
+ .serviceEndpointTemplate("https://ccdOffers.{region}.oci.{secondLevelDomain}")
+ .build();
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(CcdCommitmentsClient.class);
+
+ private final CcdCommitmentsWaiters waiters;
+
+ private final CcdCommitmentsPaginators paginators;
+
+ CcdCommitmentsClient(
+ 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("CcdCommitments-waiters-%d")
+ .build());
+ threadPoolExecutor.allowCoreThreadTimeOut(true);
+
+ executorService = threadPoolExecutor;
+ }
+ this.waiters = new CcdCommitmentsWaiters(executorService, this);
+
+ this.paginators = new CcdCommitmentsPaginators(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 = "ccdoffers";
+ 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 CcdCommitmentsClient build(
+ @jakarta.annotation.Nonnull
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ return new CcdCommitmentsClient(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 CreateCcdCommitmentResponse createCcdCommitment(CreateCcdCommitmentRequest request) {
+ Objects.requireNonNull(request.getCcdOfferId(), "ccdOfferId is required");
+
+ Objects.requireNonNull(
+ request.getCreateCcdCommitmentDetails(), "createCcdCommitmentDetails is required");
+
+ return clientCall(request, CreateCcdCommitmentResponse::builder)
+ .logger(LOG, "createCcdCommitment")
+ .serviceDetails("CcdCommitments", "CreateCcdCommitment", "")
+ .method(com.oracle.bmc.http.client.Method.POST)
+ .requestBuilder(CreateCcdCommitmentRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdCommitments")
+ .appendQueryParam("ccdOfferId", request.getCcdOfferId())
+ .accept("application/json")
+ .appendHeader("opc-retry-token", request.getOpcRetryToken())
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.ccdoffers.model.CcdCommitment.class,
+ CreateCcdCommitmentResponse.Builder::ccdCommitment)
+ .handleResponseHeaderString(
+ "opc-request-id", CreateCcdCommitmentResponse.Builder::opcRequestId)
+ .handleResponseHeaderString("etag", CreateCcdCommitmentResponse.Builder::etag)
+ .callSync();
+ }
+
+ @Override
+ public DeleteCcdCommitmentResponse deleteCcdCommitment(DeleteCcdCommitmentRequest request) {
+
+ Validate.notBlank(request.getCcdCommitmentId(), "ccdCommitmentId must not be blank");
+
+ return clientCall(request, DeleteCcdCommitmentResponse::builder)
+ .logger(LOG, "deleteCcdCommitment")
+ .serviceDetails("CcdCommitments", "DeleteCcdCommitment", "")
+ .method(com.oracle.bmc.http.client.Method.DELETE)
+ .requestBuilder(DeleteCcdCommitmentRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdCommitments")
+ .appendPathParam(request.getCcdCommitmentId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .appendHeader("if-match", request.getIfMatch())
+ .operationUsesDefaultRetries()
+ .handleResponseHeaderString(
+ "opc-request-id", DeleteCcdCommitmentResponse.Builder::opcRequestId)
+ .callSync();
+ }
+
+ @Override
+ public GetCcdCommitmentResponse getCcdCommitment(GetCcdCommitmentRequest request) {
+
+ Validate.notBlank(request.getCcdCommitmentId(), "ccdCommitmentId must not be blank");
+
+ return clientCall(request, GetCcdCommitmentResponse::builder)
+ .logger(LOG, "getCcdCommitment")
+ .serviceDetails("CcdCommitments", "GetCcdCommitment", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetCcdCommitmentRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdCommitments")
+ .appendPathParam(request.getCcdCommitmentId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.ccdoffers.model.CcdCommitment.class,
+ GetCcdCommitmentResponse.Builder::ccdCommitment)
+ .handleResponseHeaderString(
+ "opc-request-id", GetCcdCommitmentResponse.Builder::opcRequestId)
+ .handleResponseHeaderString("etag", GetCcdCommitmentResponse.Builder::etag)
+ .callSync();
+ }
+
+ @Override
+ public ListCcdCommitmentsResponse listCcdCommitments(ListCcdCommitmentsRequest request) {
+ Objects.requireNonNull(request.getSubscriptionId(), "subscriptionId is required");
+
+ Objects.requireNonNull(request.getCompartmentId(), "compartmentId is required");
+
+ return clientCall(request, ListCcdCommitmentsResponse::builder)
+ .logger(LOG, "listCcdCommitments")
+ .serviceDetails("CcdCommitments", "ListCcdCommitments", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListCcdCommitmentsRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdCommitments")
+ .appendQueryParam("subscriptionId", request.getSubscriptionId())
+ .appendQueryParam("page", request.getPage())
+ .appendQueryParam("limit", request.getLimit())
+ .appendEnumQueryParam("lifecycleState", request.getLifecycleState())
+ .appendEnumQueryParam("lifecycleDetails", request.getLifecycleDetails())
+ .appendEnumQueryParam("sourceType", request.getSourceType())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendQueryParam("displayName", request.getDisplayName())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .appendQueryParam("compartmentId", request.getCompartmentId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.ccdoffers.model.CcdCommitmentCollection.class,
+ ListCcdCommitmentsResponse.Builder::ccdCommitmentCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListCcdCommitmentsResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListCcdCommitmentsResponse.Builder::opcNextPage)
+ .callSync();
+ }
+
+ @Override
+ public UpdateCcdCommitmentResponse updateCcdCommitment(UpdateCcdCommitmentRequest request) {
+
+ Validate.notBlank(request.getCcdCommitmentId(), "ccdCommitmentId must not be blank");
+ Objects.requireNonNull(
+ request.getUpdateCcdCommitmentDetails(), "updateCcdCommitmentDetails is required");
+
+ return clientCall(request, UpdateCcdCommitmentResponse::builder)
+ .logger(LOG, "updateCcdCommitment")
+ .serviceDetails("CcdCommitments", "UpdateCcdCommitment", "")
+ .method(com.oracle.bmc.http.client.Method.PUT)
+ .requestBuilder(UpdateCcdCommitmentRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdCommitments")
+ .appendPathParam(request.getCcdCommitmentId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .appendHeader("if-match", request.getIfMatch())
+ .operationUsesDefaultRetries()
+ .hasBody()
+ .handleBody(
+ com.oracle.bmc.ccdoffers.model.CcdCommitment.class,
+ UpdateCcdCommitmentResponse.Builder::ccdCommitment)
+ .handleResponseHeaderString(
+ "opc-request-id", UpdateCcdCommitmentResponse.Builder::opcRequestId)
+ .handleResponseHeaderString("etag", UpdateCcdCommitmentResponse.Builder::etag)
+ .callSync();
+ }
+
+ @Override
+ public CcdCommitmentsWaiters getWaiters() {
+ return waiters;
+ }
+
+ @Override
+ public CcdCommitmentsPaginators 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 CcdCommitmentsClient(
+ 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 CcdCommitmentsClient(
+ 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 CcdCommitmentsClient(
+ 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 CcdCommitmentsClient(
+ 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 CcdCommitmentsClient(
+ 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 CcdCommitmentsClient(
+ 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 CcdCommitmentsClient(
+ 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 CcdCommitmentsClient(
+ 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-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsPaginators.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsPaginators.java
new file mode 100644
index 00000000000..74de3ff0974
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsPaginators.java
@@ -0,0 +1,161 @@
+/**
+ * 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.ccdoffers;
+
+import com.oracle.bmc.ccdoffers.requests.*;
+import com.oracle.bmc.ccdoffers.responses.*;
+
+/**
+ * Collection of helper methods that can be used to provide an {@link java.lang.Iterable} interface
+ * to any list operations of CcdCommitments 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: 20240601")
+public class CcdCommitmentsPaginators {
+ private final CcdCommitments client;
+
+ public CcdCommitmentsPaginators(CcdCommitments client) {
+ this.client = client;
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the responses received from the
+ * listCcdCommitments 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 listCcdCommitmentsResponseIterator(
+ final ListCcdCommitmentsRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseIterable<
+ ListCcdCommitmentsRequest.Builder,
+ ListCcdCommitmentsRequest,
+ ListCcdCommitmentsResponse>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListCcdCommitmentsRequest.Builder get() {
+ return ListCcdCommitmentsRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListCcdCommitmentsResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListCcdCommitmentsRequest.Builder>,
+ ListCcdCommitmentsRequest>() {
+ @Override
+ public ListCcdCommitmentsRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListCcdCommitmentsRequest.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<
+ ListCcdCommitmentsRequest, ListCcdCommitmentsResponse>() {
+ @Override
+ public ListCcdCommitmentsResponse apply(ListCcdCommitmentsRequest request) {
+ return client.listCcdCommitments(request);
+ }
+ });
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the {@link
+ * com.oracle.bmc.ccdoffers.model.CcdCommitmentSummary} objects contained in responses from the
+ * listCcdCommitments 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.ccdoffers.model.CcdCommitmentSummary} objects contained in responses
+ * received from the service.
+ */
+ public Iterable
+ listCcdCommitmentsRecordIterator(final ListCcdCommitmentsRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseRecordIterable<
+ ListCcdCommitmentsRequest.Builder,
+ ListCcdCommitmentsRequest,
+ ListCcdCommitmentsResponse,
+ com.oracle.bmc.ccdoffers.model.CcdCommitmentSummary>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListCcdCommitmentsRequest.Builder get() {
+ return ListCcdCommitmentsRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListCcdCommitmentsResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListCcdCommitmentsRequest.Builder>,
+ ListCcdCommitmentsRequest>() {
+ @Override
+ public ListCcdCommitmentsRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListCcdCommitmentsRequest.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<
+ ListCcdCommitmentsRequest, ListCcdCommitmentsResponse>() {
+ @Override
+ public ListCcdCommitmentsResponse apply(ListCcdCommitmentsRequest request) {
+ return client.listCcdCommitments(request);
+ }
+ },
+ new java.util.function.Function<
+ ListCcdCommitmentsResponse,
+ java.util.List>() {
+ @Override
+ public java.util.List
+ apply(ListCcdCommitmentsResponse response) {
+ return response.getCcdCommitmentCollection().getItems();
+ }
+ });
+ }
+}
diff --git a/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsWaiters.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsWaiters.java
new file mode 100644
index 00000000000..71e1eb5832b
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdCommitmentsWaiters.java
@@ -0,0 +1,131 @@
+/**
+ * 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.ccdoffers;
+
+import com.oracle.bmc.ccdoffers.requests.*;
+import com.oracle.bmc.ccdoffers.responses.*;
+
+/**
+ * Collection of helper methods to produce {@link com.oracle.bmc.waiter.Waiter}s for different
+ * resources of CcdCommitments.
+ *
+ * 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: 20240601")
+public class CcdCommitmentsWaiters {
+ private final java.util.concurrent.ExecutorService executorService;
+ private final CcdCommitments client;
+
+ public CcdCommitmentsWaiters(
+ java.util.concurrent.ExecutorService executorService, CcdCommitments 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
+ forCcdCommitment(
+ GetCcdCommitmentRequest request,
+ com.oracle.bmc.ccdoffers.model.CcdCommitment.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 forCcdCommitment(
+ 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
+ forCcdCommitment(
+ GetCcdCommitmentRequest request,
+ com.oracle.bmc.ccdoffers.model.CcdCommitment.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 forCcdCommitment(
+ 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
+ forCcdCommitment(
+ GetCcdCommitmentRequest request,
+ com.oracle.bmc.waiter.TerminationStrategy terminationStrategy,
+ com.oracle.bmc.waiter.DelayStrategy delayStrategy,
+ com.oracle.bmc.ccdoffers.model.CcdCommitment.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 forCcdCommitment(
+ com.oracle.bmc.waiter.Waiters.newWaiter(terminationStrategy, delayStrategy),
+ request,
+ targetStates);
+ }
+
+ // Helper method to create a new Waiter for CcdCommitment.
+ private com.oracle.bmc.waiter.Waiter
+ forCcdCommitment(
+ com.oracle.bmc.waiter.BmcGenericWaiter waiter,
+ final GetCcdCommitmentRequest request,
+ final com.oracle.bmc.ccdoffers.model.CcdCommitment.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<
+ GetCcdCommitmentRequest, GetCcdCommitmentResponse>() {
+ @Override
+ public GetCcdCommitmentResponse apply(GetCcdCommitmentRequest request) {
+ return client.getCcdCommitment(request);
+ }
+ },
+ new java.util.function.Predicate() {
+ @Override
+ public boolean test(GetCcdCommitmentResponse response) {
+ return targetStatesSet.contains(
+ response.getCcdCommitment().getLifecycleState());
+ }
+ },
+ false),
+ request);
+ }
+}
diff --git a/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffers.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffers.java
new file mode 100644
index 00000000000..a79e479140e
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffers.java
@@ -0,0 +1,113 @@
+/**
+ * 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.ccdoffers;
+
+import com.oracle.bmc.ccdoffers.requests.*;
+import com.oracle.bmc.ccdoffers.responses.*;
+
+/**
+ * Use the Continuous Consumption Discounts API to manage continuous consumption discount
+ * operations. 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: 20240601")
+public interface CcdOffers 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);
+
+ /**
+ * Get a particular CCD offer details.
+ *
+ * @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 GetCcdOffer API.
+ */
+ GetCcdOfferResponse getCcdOffer(GetCcdOfferRequest request);
+
+ /**
+ * Lists the CCD offers for the requested subscription. A FLEX offer is no longer returned after
+ * it is either accepted, rejected or expired.
+ *
+ * @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 ListCcdOffers API.
+ */
+ ListCcdOffersResponse listCcdOffers(ListCcdOffersRequest request);
+
+ /**
+ * Gets the pre-configured waiters available for resources for this service.
+ *
+ * @return The service waiters.
+ */
+ CcdOffersWaiters 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.
+ */
+ CcdOffersPaginators getPaginators();
+}
diff --git a/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersAsync.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersAsync.java
new file mode 100644
index 00000000000..13eafa4952f
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersAsync.java
@@ -0,0 +1,94 @@
+/**
+ * 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.ccdoffers;
+
+import com.oracle.bmc.ccdoffers.requests.*;
+import com.oracle.bmc.ccdoffers.responses.*;
+
+/**
+ * Use the Continuous Consumption Discounts API to manage continuous consumption discount
+ * operations.
+ */
+@jakarta.annotation.Generated(value = "OracleSDKGenerator", comments = "API Version: 20240601")
+public interface CcdOffersAsync 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);
+
+ /**
+ * Get a particular CCD offer details.
+ *
+ * @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 getCcdOffer(
+ GetCcdOfferRequest request,
+ com.oracle.bmc.responses.AsyncHandler handler);
+
+ /**
+ * Lists the CCD offers for the requested subscription. A FLEX offer is no longer returned after
+ * it is either accepted, rejected or expired.
+ *
+ * @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 listCcdOffers(
+ ListCcdOffersRequest request,
+ com.oracle.bmc.responses.AsyncHandler
+ handler);
+}
diff --git a/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersAsyncClient.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersAsyncClient.java
new file mode 100644
index 00000000000..2993882ada7
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersAsyncClient.java
@@ -0,0 +1,324 @@
+/**
+ * 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.ccdoffers;
+
+import com.oracle.bmc.util.internal.Validate;
+import com.oracle.bmc.ccdoffers.requests.*;
+import com.oracle.bmc.ccdoffers.responses.*;
+
+import java.util.Objects;
+
+/**
+ * Async client implementation for CcdOffers 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: 20240601")
+public class CcdOffersAsyncClient extends com.oracle.bmc.http.internal.BaseAsyncClient
+ implements CcdOffersAsync {
+ /** Service instance for CcdOffers. */
+ public static final com.oracle.bmc.Service SERVICE =
+ com.oracle.bmc.Services.serviceBuilder()
+ .serviceName(CcdOffersClient.class.getName())
+ .serviceEndpointPrefix("")
+ .serviceEndpointTemplate("https://ccdOffers.{region}.oci.{secondLevelDomain}")
+ .build();
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(CcdOffersAsyncClient.class);
+
+ CcdOffersAsyncClient(
+ 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 = "ccdoffers";
+ 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 CcdOffersAsyncClient build(
+ @jakarta.annotation.Nonnull
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ return new CcdOffersAsyncClient(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 getCcdOffer(
+ GetCcdOfferRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+
+ Validate.notBlank(request.getCcdOfferId(), "ccdOfferId must not be blank");
+ Objects.requireNonNull(request.getSubscriptionId(), "subscriptionId is required");
+
+ return clientCall(request, GetCcdOfferResponse::builder)
+ .logger(LOG, "getCcdOffer")
+ .serviceDetails("CcdOffers", "GetCcdOffer", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetCcdOfferRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdOffers")
+ .appendPathParam(request.getCcdOfferId())
+ .appendQueryParam("subscriptionId", request.getSubscriptionId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.ccdoffers.model.CcdOffer.class,
+ GetCcdOfferResponse.Builder::ccdOffer)
+ .handleResponseHeaderString(
+ "opc-request-id", GetCcdOfferResponse.Builder::opcRequestId)
+ .handleResponseHeaderString("etag", GetCcdOfferResponse.Builder::etag)
+ .callAsync(handler);
+ }
+
+ @Override
+ public java.util.concurrent.Future listCcdOffers(
+ ListCcdOffersRequest request,
+ final com.oracle.bmc.responses.AsyncHandler
+ handler) {
+ Objects.requireNonNull(request.getSubscriptionId(), "subscriptionId is required");
+
+ Objects.requireNonNull(request.getCompartmentId(), "compartmentId is required");
+
+ return clientCall(request, ListCcdOffersResponse::builder)
+ .logger(LOG, "listCcdOffers")
+ .serviceDetails("CcdOffers", "ListCcdOffers", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListCcdOffersRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdOffers")
+ .appendQueryParam("page", request.getPage())
+ .appendQueryParam("limit", request.getLimit())
+ .appendEnumQueryParam("lifecycleState", request.getLifecycleState())
+ .appendEnumQueryParam("lifecycleDetails", request.getLifecycleDetails())
+ .appendEnumQueryParam("typeOfOffer", request.getTypeOfOffer())
+ .appendEnumQueryParam("sourceType", request.getSourceType())
+ .appendQueryParam("subscriptionId", request.getSubscriptionId())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .appendQueryParam("displayName", request.getDisplayName())
+ .appendQueryParam("compartmentId", request.getCompartmentId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .handleBody(
+ com.oracle.bmc.ccdoffers.model.CcdOfferCollection.class,
+ ListCcdOffersResponse.Builder::ccdOfferCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListCcdOffersResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListCcdOffersResponse.Builder::opcNextPage)
+ .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 CcdOffersAsyncClient(
+ 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 CcdOffersAsyncClient(
+ 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 CcdOffersAsyncClient(
+ 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 CcdOffersAsyncClient(
+ 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 CcdOffersAsyncClient(
+ 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 CcdOffersAsyncClient(
+ 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 CcdOffersAsyncClient(
+ 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-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersClient.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersClient.java
new file mode 100644
index 00000000000..481b210023f
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersClient.java
@@ -0,0 +1,403 @@
+/**
+ * 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.ccdoffers;
+
+import com.oracle.bmc.util.internal.Validate;
+import com.oracle.bmc.ccdoffers.requests.*;
+import com.oracle.bmc.ccdoffers.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: 20240601")
+public class CcdOffersClient extends com.oracle.bmc.http.internal.BaseSyncClient
+ implements CcdOffers {
+ /** Service instance for CcdOffers. */
+ public static final com.oracle.bmc.Service SERVICE =
+ com.oracle.bmc.Services.serviceBuilder()
+ .serviceName(CcdOffersClient.class.getName())
+ .serviceEndpointPrefix("")
+ .serviceEndpointTemplate("https://ccdOffers.{region}.oci.{secondLevelDomain}")
+ .build();
+
+ private static final org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(CcdOffersClient.class);
+
+ private final CcdOffersWaiters waiters;
+
+ private final CcdOffersPaginators paginators;
+
+ CcdOffersClient(
+ 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("CcdOffers-waiters-%d")
+ .build());
+ threadPoolExecutor.allowCoreThreadTimeOut(true);
+
+ executorService = threadPoolExecutor;
+ }
+ this.waiters = new CcdOffersWaiters(executorService, this);
+
+ this.paginators = new CcdOffersPaginators(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 = "ccdoffers";
+ 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 CcdOffersClient build(
+ @jakarta.annotation.Nonnull
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
+ authenticationDetailsProvider) {
+ return new CcdOffersClient(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 GetCcdOfferResponse getCcdOffer(GetCcdOfferRequest request) {
+
+ Validate.notBlank(request.getCcdOfferId(), "ccdOfferId must not be blank");
+ Objects.requireNonNull(request.getSubscriptionId(), "subscriptionId is required");
+
+ return clientCall(request, GetCcdOfferResponse::builder)
+ .logger(LOG, "getCcdOffer")
+ .serviceDetails("CcdOffers", "GetCcdOffer", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(GetCcdOfferRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdOffers")
+ .appendPathParam(request.getCcdOfferId())
+ .appendQueryParam("subscriptionId", request.getSubscriptionId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.ccdoffers.model.CcdOffer.class,
+ GetCcdOfferResponse.Builder::ccdOffer)
+ .handleResponseHeaderString(
+ "opc-request-id", GetCcdOfferResponse.Builder::opcRequestId)
+ .handleResponseHeaderString("etag", GetCcdOfferResponse.Builder::etag)
+ .callSync();
+ }
+
+ @Override
+ public ListCcdOffersResponse listCcdOffers(ListCcdOffersRequest request) {
+ Objects.requireNonNull(request.getSubscriptionId(), "subscriptionId is required");
+
+ Objects.requireNonNull(request.getCompartmentId(), "compartmentId is required");
+
+ return clientCall(request, ListCcdOffersResponse::builder)
+ .logger(LOG, "listCcdOffers")
+ .serviceDetails("CcdOffers", "ListCcdOffers", "")
+ .method(com.oracle.bmc.http.client.Method.GET)
+ .requestBuilder(ListCcdOffersRequest::builder)
+ .basePath("/20240601")
+ .appendPathParam("ccdOffers")
+ .appendQueryParam("page", request.getPage())
+ .appendQueryParam("limit", request.getLimit())
+ .appendEnumQueryParam("lifecycleState", request.getLifecycleState())
+ .appendEnumQueryParam("lifecycleDetails", request.getLifecycleDetails())
+ .appendEnumQueryParam("typeOfOffer", request.getTypeOfOffer())
+ .appendEnumQueryParam("sourceType", request.getSourceType())
+ .appendQueryParam("subscriptionId", request.getSubscriptionId())
+ .appendEnumQueryParam("sortOrder", request.getSortOrder())
+ .appendEnumQueryParam("sortBy", request.getSortBy())
+ .appendQueryParam("displayName", request.getDisplayName())
+ .appendQueryParam("compartmentId", request.getCompartmentId())
+ .accept("application/json")
+ .appendHeader("opc-request-id", request.getOpcRequestId())
+ .operationUsesDefaultRetries()
+ .handleBody(
+ com.oracle.bmc.ccdoffers.model.CcdOfferCollection.class,
+ ListCcdOffersResponse.Builder::ccdOfferCollection)
+ .handleResponseHeaderString(
+ "opc-request-id", ListCcdOffersResponse.Builder::opcRequestId)
+ .handleResponseHeaderString(
+ "opc-next-page", ListCcdOffersResponse.Builder::opcNextPage)
+ .callSync();
+ }
+
+ @Override
+ public CcdOffersWaiters getWaiters() {
+ return waiters;
+ }
+
+ @Override
+ public CcdOffersPaginators 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 CcdOffersClient(
+ 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 CcdOffersClient(
+ 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 CcdOffersClient(
+ 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 CcdOffersClient(
+ 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 CcdOffersClient(
+ 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 CcdOffersClient(
+ 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 CcdOffersClient(
+ 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 CcdOffersClient(
+ 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-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersPaginators.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersPaginators.java
new file mode 100644
index 00000000000..82473d915bc
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersPaginators.java
@@ -0,0 +1,157 @@
+/**
+ * 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.ccdoffers;
+
+import com.oracle.bmc.ccdoffers.requests.*;
+import com.oracle.bmc.ccdoffers.responses.*;
+
+/**
+ * Collection of helper methods that can be used to provide an {@link java.lang.Iterable} interface
+ * to any list operations of CcdOffers 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: 20240601")
+public class CcdOffersPaginators {
+ private final CcdOffers client;
+
+ public CcdOffersPaginators(CcdOffers client) {
+ this.client = client;
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the responses received from the listCcdOffers
+ * 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 listCcdOffersResponseIterator(
+ final ListCcdOffersRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseIterable<
+ ListCcdOffersRequest.Builder, ListCcdOffersRequest, ListCcdOffersResponse>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListCcdOffersRequest.Builder get() {
+ return ListCcdOffersRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListCcdOffersResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListCcdOffersRequest.Builder>,
+ ListCcdOffersRequest>() {
+ @Override
+ public ListCcdOffersRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListCcdOffersRequest.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 ListCcdOffersResponse apply(ListCcdOffersRequest request) {
+ return client.listCcdOffers(request);
+ }
+ });
+ }
+
+ /**
+ * Creates a new iterable which will iterate over the {@link
+ * com.oracle.bmc.ccdoffers.model.CcdOfferSummary} objects contained in responses from the
+ * listCcdOffers 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.ccdoffers.model.CcdOfferSummary} objects contained in responses received
+ * from the service.
+ */
+ public Iterable listCcdOffersRecordIterator(
+ final ListCcdOffersRequest request) {
+ return new com.oracle.bmc.paginator.internal.ResponseRecordIterable<
+ ListCcdOffersRequest.Builder,
+ ListCcdOffersRequest,
+ ListCcdOffersResponse,
+ com.oracle.bmc.ccdoffers.model.CcdOfferSummary>(
+ new java.util.function.Supplier() {
+ @Override
+ public ListCcdOffersRequest.Builder get() {
+ return ListCcdOffersRequest.builder().copy(request);
+ }
+ },
+ new java.util.function.Function() {
+ @Override
+ public String apply(ListCcdOffersResponse response) {
+ return response.getOpcNextPage();
+ }
+ },
+ new java.util.function.Function<
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListCcdOffersRequest.Builder>,
+ ListCcdOffersRequest>() {
+ @Override
+ public ListCcdOffersRequest apply(
+ com.oracle.bmc.paginator.internal.RequestBuilderAndToken<
+ ListCcdOffersRequest.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 ListCcdOffersResponse apply(ListCcdOffersRequest request) {
+ return client.listCcdOffers(request);
+ }
+ },
+ new java.util.function.Function<
+ ListCcdOffersResponse,
+ java.util.List>() {
+ @Override
+ public java.util.List apply(
+ ListCcdOffersResponse response) {
+ return response.getCcdOfferCollection().getItems();
+ }
+ });
+ }
+}
diff --git a/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersWaiters.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersWaiters.java
new file mode 100644
index 00000000000..ad845c368b1
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/CcdOffersWaiters.java
@@ -0,0 +1,125 @@
+/**
+ * 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.ccdoffers;
+
+import com.oracle.bmc.ccdoffers.requests.*;
+import com.oracle.bmc.ccdoffers.responses.*;
+
+/**
+ * Collection of helper methods to produce {@link com.oracle.bmc.waiter.Waiter}s for different
+ * resources of CcdOffers.
+ *
+ * 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: 20240601")
+public class CcdOffersWaiters {
+ private final java.util.concurrent.ExecutorService executorService;
+ private final CcdOffers client;
+
+ public CcdOffersWaiters(
+ java.util.concurrent.ExecutorService executorService, CcdOffers 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 forCcdOffer(
+ GetCcdOfferRequest request,
+ com.oracle.bmc.ccdoffers.model.CcdOffer.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 forCcdOffer(
+ 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 forCcdOffer(
+ GetCcdOfferRequest request,
+ com.oracle.bmc.ccdoffers.model.CcdOffer.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 forCcdOffer(
+ 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 forCcdOffer(
+ GetCcdOfferRequest request,
+ com.oracle.bmc.waiter.TerminationStrategy terminationStrategy,
+ com.oracle.bmc.waiter.DelayStrategy delayStrategy,
+ com.oracle.bmc.ccdoffers.model.CcdOffer.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 forCcdOffer(
+ com.oracle.bmc.waiter.Waiters.newWaiter(terminationStrategy, delayStrategy),
+ request,
+ targetStates);
+ }
+
+ // Helper method to create a new Waiter for CcdOffer.
+ private com.oracle.bmc.waiter.Waiter forCcdOffer(
+ com.oracle.bmc.waiter.BmcGenericWaiter waiter,
+ final GetCcdOfferRequest request,
+ final com.oracle.bmc.ccdoffers.model.CcdOffer.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 GetCcdOfferResponse apply(GetCcdOfferRequest request) {
+ return client.getCcdOffer(request);
+ }
+ },
+ new java.util.function.Predicate() {
+ @Override
+ public boolean test(GetCcdOfferResponse response) {
+ return targetStatesSet.contains(
+ response.getCcdOffer().getLifecycleState());
+ }
+ },
+ false),
+ request);
+ }
+}
diff --git a/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/BundleSku.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/BundleSku.java
new file mode 100644
index 00000000000..8b9de7d0ec7
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/BundleSku.java
@@ -0,0 +1,252 @@
+/**
+ * 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.ccdoffers.model;
+
+/**
+ * A polymorphic bundle SKU. The {@code quantityRule} discriminator identifies how the quantity for
+ * this bundled SKU is determined. Every bundled SKU in an offer must use the same {@code
+ * quantityRule}; don't mix {@code FIXED_RATIO} and {@code CUSTOMER_SELECTED} bundled SKUs in one
+ * offer.
+ * 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: 20240601")
+@com.fasterxml.jackson.annotation.JsonTypeInfo(
+ use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME,
+ include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,
+ property = "quantityRule",
+ defaultImpl = BundleSku.class)
+@com.fasterxml.jackson.annotation.JsonSubTypes({
+ @com.fasterxml.jackson.annotation.JsonSubTypes.Type(
+ value = FixedRatioBundleSku.class,
+ name = "FIXED_RATIO"),
+ @com.fasterxml.jackson.annotation.JsonSubTypes.Type(
+ value = CustomerSelectedBundleSku.class,
+ name = "CUSTOMER_SELECTED")
+})
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public class BundleSku extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "sku",
+ "skuDisplayName",
+ "skuMetric",
+ "listPrice",
+ "currencyCode"
+ })
+ protected BundleSku(
+ String sku,
+ String skuDisplayName,
+ String skuMetric,
+ String listPrice,
+ String currencyCode) {
+ super();
+ this.sku = sku;
+ this.skuDisplayName = skuDisplayName;
+ this.skuMetric = skuMetric;
+ this.listPrice = listPrice;
+ this.currencyCode = currencyCode;
+ }
+
+ /**
+ * The bundled SKU part number (prefaced with "B"). For example, the "E4 MEMORY" SKU will be
+ * bundled with the main "E4 OCPUs" SKU.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("sku")
+ private final String sku;
+
+ /**
+ * The bundled SKU part number (prefaced with "B"). For example, the "E4 MEMORY" SKU will be
+ * bundled with the main "E4 OCPUs" SKU.
+ *
+ * @return the value
+ */
+ public String getSku() {
+ return sku;
+ }
+
+ /**
+ * The SKU display name is derived by CCD. If CCD cannot derive a unique value, it uses the
+ * caller-provided value.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuDisplayName")
+ private final String skuDisplayName;
+
+ /**
+ * The SKU display name is derived by CCD. If CCD cannot derive a unique value, it uses the
+ * caller-provided value.
+ *
+ * @return the value
+ */
+ public String getSkuDisplayName() {
+ return skuDisplayName;
+ }
+
+ /**
+ * The SKU billing metric is derived by CCD. If CCD cannot derive a unique value, it uses the
+ * caller-provided value.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuMetric")
+ private final String skuMetric;
+
+ /**
+ * The SKU billing metric is derived by CCD. If CCD cannot derive a unique value, it uses the
+ * caller-provided value.
+ *
+ * @return the value
+ */
+ public String getSkuMetric() {
+ return skuMetric;
+ }
+
+ /**
+ * List price of a SKU. Only set this property if the product or SKU is private. Tier pricing
+ * SKUs aren't supported.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("listPrice")
+ private final String listPrice;
+
+ /**
+ * List price of a SKU. Only set this property if the product or SKU is private. Tier pricing
+ * SKUs aren't supported.
+ *
+ * @return the value
+ */
+ public String getListPrice() {
+ return listPrice;
+ }
+
+ /**
+ * The currency code of {@code listPrice} associated with the product or SKU. Only set this
+ * property if the product or SKU is private. Tier pricing SKUs aren't supported.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("currencyCode")
+ private final String currencyCode;
+
+ /**
+ * The currency code of {@code listPrice} associated with the product or SKU. Only set this
+ * property if the product or SKU is private. Tier pricing SKUs aren't supported.
+ *
+ * @return the value
+ */
+ public String getCurrencyCode() {
+ return currencyCode;
+ }
+
+ @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("BundleSku(");
+ sb.append("super=").append(super.toString());
+ sb.append("sku=").append(String.valueOf(this.sku));
+ sb.append(", skuDisplayName=").append(String.valueOf(this.skuDisplayName));
+ sb.append(", skuMetric=").append(String.valueOf(this.skuMetric));
+ sb.append(", listPrice=").append(String.valueOf(this.listPrice));
+ sb.append(", currencyCode=").append(String.valueOf(this.currencyCode));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof BundleSku)) {
+ return false;
+ }
+
+ BundleSku other = (BundleSku) o;
+ return java.util.Objects.equals(this.sku, other.sku)
+ && java.util.Objects.equals(this.skuDisplayName, other.skuDisplayName)
+ && java.util.Objects.equals(this.skuMetric, other.skuMetric)
+ && java.util.Objects.equals(this.listPrice, other.listPrice)
+ && java.util.Objects.equals(this.currencyCode, other.currencyCode)
+ && super.equals(other);
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = (result * PRIME) + (this.sku == null ? 43 : this.sku.hashCode());
+ result =
+ (result * PRIME)
+ + (this.skuDisplayName == null ? 43 : this.skuDisplayName.hashCode());
+ result = (result * PRIME) + (this.skuMetric == null ? 43 : this.skuMetric.hashCode());
+ result = (result * PRIME) + (this.listPrice == null ? 43 : this.listPrice.hashCode());
+ result = (result * PRIME) + (this.currencyCode == null ? 43 : this.currencyCode.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+
+ /**
+ * Determines how CCD resolves the bundled SKU quantity. {@code FIXED_RATIO} quantities are
+ * derived from the primary quantity using {@code ratio}. {@code CUSTOMER_SELECTED} quantities
+ * are provided by the customer within the configured minimum and maximum.
+ */
+ public enum QuantityRule implements com.oracle.bmc.http.internal.BmcEnum {
+ FixedRatio("FIXED_RATIO"),
+ CustomerSelected("CUSTOMER_SELECTED"),
+
+ /**
+ * 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(QuantityRule.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (QuantityRule v : QuantityRule.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ QuantityRule(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static QuantityRule create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'QuantityRule', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+}
diff --git a/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdCommitment.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdCommitment.java
new file mode 100644
index 00000000000..6f33eae120d
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdCommitment.java
@@ -0,0 +1,1415 @@
+/**
+ * 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.ccdoffers.model;
+
+/**
+ * The created CCD commitment details.
+ * 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: 20240601")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = CcdCommitment.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CcdCommitment extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "quantity",
+ "displayName",
+ "offerId",
+ "sourceType",
+ "reclaimTerm",
+ "reclaimTermUnit",
+ "timeCcdCommitmentStarts",
+ "timeCcdCommitmentEnds",
+ "subscriptionId",
+ "compartmentId",
+ "fillerTenancyId",
+ "fillerTenancyHomeRegion",
+ "usageEligibility",
+ "secondarySkus",
+ "lifecycleState",
+ "lifecycleDetails",
+ "skuQuantityPriceModel",
+ "timeCreated",
+ "timeUpdated",
+ "timeTerminated",
+ "freeformTags",
+ "definedTags",
+ "systemTags",
+ "lastUpdatedBy",
+ "createdBy",
+ "approvedBy"
+ })
+ public CcdCommitment(
+ String id,
+ Long quantity,
+ String displayName,
+ String offerId,
+ CcdOffer.SourceType sourceType,
+ Long reclaimTerm,
+ CcdOffer.ReclaimTermUnit reclaimTermUnit,
+ java.util.Date timeCcdCommitmentStarts,
+ java.util.Date timeCcdCommitmentEnds,
+ String subscriptionId,
+ String compartmentId,
+ String fillerTenancyId,
+ String fillerTenancyHomeRegion,
+ UsageEligibility usageEligibility,
+ java.util.List secondarySkus,
+ LifecycleState lifecycleState,
+ LifecycleDetails lifecycleDetails,
+ java.util.List skuQuantityPriceModel,
+ java.util.Date timeCreated,
+ java.util.Date timeUpdated,
+ java.util.Date timeTerminated,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ java.util.Map> systemTags,
+ String lastUpdatedBy,
+ String createdBy,
+ String approvedBy) {
+ super();
+ this.id = id;
+ this.quantity = quantity;
+ this.displayName = displayName;
+ this.offerId = offerId;
+ this.sourceType = sourceType;
+ this.reclaimTerm = reclaimTerm;
+ this.reclaimTermUnit = reclaimTermUnit;
+ this.timeCcdCommitmentStarts = timeCcdCommitmentStarts;
+ this.timeCcdCommitmentEnds = timeCcdCommitmentEnds;
+ this.subscriptionId = subscriptionId;
+ this.compartmentId = compartmentId;
+ this.fillerTenancyId = fillerTenancyId;
+ this.fillerTenancyHomeRegion = fillerTenancyHomeRegion;
+ this.usageEligibility = usageEligibility;
+ this.secondarySkus = secondarySkus;
+ this.lifecycleState = lifecycleState;
+ this.lifecycleDetails = lifecycleDetails;
+ this.skuQuantityPriceModel = skuQuantityPriceModel;
+ this.timeCreated = timeCreated;
+ this.timeUpdated = timeUpdated;
+ this.timeTerminated = timeTerminated;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.systemTags = systemTags;
+ this.lastUpdatedBy = lastUpdatedBy;
+ this.createdBy = createdBy;
+ this.approvedBy = approvedBy;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The CCD commitment resource OCID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * The CCD commitment resource OCID.
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /**
+ * The hourly quantity that the customer is committing to a CCD offer's main SKU. For
+ * example, if the quantity is 1000, then you are committing to a 1000 usage quantity value
+ * per hour.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("quantity")
+ private Long quantity;
+
+ /**
+ * The hourly quantity that the customer is committing to a CCD offer's main SKU. For
+ * example, if the quantity is 1000, then you are committing to a 1000 usage quantity value
+ * per hour.
+ *
+ * @param quantity the value to set
+ * @return this builder
+ */
+ public Builder quantity(Long quantity) {
+ this.quantity = quantity;
+ this.__explicitlySet__.add("quantity");
+ return this;
+ }
+ /**
+ * The CCD commitment name. Ensure the name is unique for a given subscription ID. Avoid
+ * entering confidential information.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * The CCD commitment name. Ensure the name is unique for a given subscription ID. 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 CCD offer OCID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("offerId")
+ private String offerId;
+
+ /**
+ * The CCD offer OCID.
+ *
+ * @param offerId the value to set
+ * @return this builder
+ */
+ public Builder offerId(String offerId) {
+ this.offerId = offerId;
+ this.__explicitlySet__.add("offerId");
+ return this;
+ }
+ /** The commercial workflow of the associated CCD offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceType")
+ private CcdOffer.SourceType sourceType;
+
+ /**
+ * The commercial workflow of the associated CCD offer.
+ *
+ * @param sourceType the value to set
+ * @return this builder
+ */
+ public Builder sourceType(CcdOffer.SourceType sourceType) {
+ this.sourceType = sourceType;
+ this.__explicitlySet__.add("sourceType");
+ return this;
+ }
+ /**
+ * The reclaim term copied from the offer when the commitment is created. The value is
+ * measured in {@code reclaimTermUnit}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTerm")
+ private Long reclaimTerm;
+
+ /**
+ * The reclaim term copied from the offer when the commitment is created. The value is
+ * measured in {@code reclaimTermUnit}.
+ *
+ * @param reclaimTerm the value to set
+ * @return this builder
+ */
+ public Builder reclaimTerm(Long reclaimTerm) {
+ this.reclaimTerm = reclaimTerm;
+ this.__explicitlySet__.add("reclaimTerm");
+ return this;
+ }
+ /**
+ * The unit used to measure {@code reclaimTerm}, copied from the offer when the commitment
+ * is created.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTermUnit")
+ private CcdOffer.ReclaimTermUnit reclaimTermUnit;
+
+ /**
+ * The unit used to measure {@code reclaimTerm}, copied from the offer when the commitment
+ * is created.
+ *
+ * @param reclaimTermUnit the value to set
+ * @return this builder
+ */
+ public Builder reclaimTermUnit(CcdOffer.ReclaimTermUnit reclaimTermUnit) {
+ this.reclaimTermUnit = reclaimTermUnit;
+ this.__explicitlySet__.add("reclaimTermUnit");
+ return this;
+ }
+ /**
+ * The date and time the CCD commitment will be effective.The format is defined by RFC 3339.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdCommitmentStarts")
+ private java.util.Date timeCcdCommitmentStarts;
+
+ /**
+ * The date and time the CCD commitment will be effective.The format is defined by RFC 3339.
+ *
+ * @param timeCcdCommitmentStarts the value to set
+ * @return this builder
+ */
+ public Builder timeCcdCommitmentStarts(java.util.Date timeCcdCommitmentStarts) {
+ this.timeCcdCommitmentStarts = timeCcdCommitmentStarts;
+ this.__explicitlySet__.add("timeCcdCommitmentStarts");
+ return this;
+ }
+ /**
+ * The date and time the CCD commitment will be deactivated. The date and time is calculated
+ * based on {@code timeCcdCommitmentStarts}, the term, and units of the CCD offer. For
+ * example: {@code 2025-06-01T03:00:00}. The format is defined by RFC 3339.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdCommitmentEnds")
+ private java.util.Date timeCcdCommitmentEnds;
+
+ /**
+ * The date and time the CCD commitment will be deactivated. The date and time is calculated
+ * based on {@code timeCcdCommitmentStarts}, the term, and units of the CCD offer. For
+ * example: {@code 2025-06-01T03:00:00}. The format is defined by RFC 3339.
+ *
+ * @param timeCcdCommitmentEnds the value to set
+ * @return this builder
+ */
+ public Builder timeCcdCommitmentEnds(java.util.Date timeCcdCommitmentEnds) {
+ this.timeCcdCommitmentEnds = timeCcdCommitmentEnds;
+ this.__explicitlySet__.add("timeCcdCommitmentEnds");
+ return this;
+ }
+ /** The subscription ID the CCD offer is applicable to. */
+ @com.fasterxml.jackson.annotation.JsonProperty("subscriptionId")
+ private String subscriptionId;
+
+ /**
+ * The subscription ID the CCD offer is applicable to.
+ *
+ * @param subscriptionId the value to set
+ * @return this builder
+ */
+ public Builder subscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ this.__explicitlySet__.add("subscriptionId");
+ return this;
+ }
+ /**
+ * The root compartment ID. The CCD Commitment is associated with the tenancy root
+ * compartment ID.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private String compartmentId;
+
+ /**
+ * The root compartment ID. The CCD Commitment is associated with the tenancy root
+ * compartment ID.
+ *
+ * @param compartmentId the value to set
+ * @return this builder
+ */
+ public Builder compartmentId(String compartmentId) {
+ this.compartmentId = compartmentId;
+ this.__explicitlySet__.add("compartmentId");
+ return this;
+ }
+ /** The tenancy OCID that you want to apply filler usage to. */
+ @com.fasterxml.jackson.annotation.JsonProperty("fillerTenancyId")
+ private String fillerTenancyId;
+
+ /**
+ * The tenancy OCID that you want to apply filler usage to.
+ *
+ * @param fillerTenancyId the value to set
+ * @return this builder
+ */
+ public Builder fillerTenancyId(String fillerTenancyId) {
+ this.fillerTenancyId = fillerTenancyId;
+ this.__explicitlySet__.add("fillerTenancyId");
+ return this;
+ }
+ /** The filler tenancy home region. */
+ @com.fasterxml.jackson.annotation.JsonProperty("fillerTenancyHomeRegion")
+ private String fillerTenancyHomeRegion;
+
+ /**
+ * The filler tenancy home region.
+ *
+ * @param fillerTenancyHomeRegion the value to set
+ * @return this builder
+ */
+ public Builder fillerTenancyHomeRegion(String fillerTenancyHomeRegion) {
+ this.fillerTenancyHomeRegion = fillerTenancyHomeRegion;
+ this.__explicitlySet__.add("fillerTenancyHomeRegion");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("usageEligibility")
+ private UsageEligibility usageEligibility;
+
+ public Builder usageEligibility(UsageEligibility usageEligibility) {
+ this.usageEligibility = usageEligibility;
+ this.__explicitlySet__.add("usageEligibility");
+ return this;
+ }
+ /** Secondary SKUs associated with the main SKU. */
+ @com.fasterxml.jackson.annotation.JsonProperty("secondarySkus")
+ private java.util.List secondarySkus;
+
+ /**
+ * Secondary SKUs associated with the main SKU.
+ *
+ * @param secondarySkus the value to set
+ * @return this builder
+ */
+ public Builder secondarySkus(java.util.List secondarySkus) {
+ this.secondarySkus = secondarySkus;
+ this.__explicitlySet__.add("secondarySkus");
+ return this;
+ }
+ /**
+ * This state always defaults to {@code Active}. For a detailed and exact state, check the
+ * {@code lifecycleDetails} state.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private LifecycleState lifecycleState;
+
+ /**
+ * This state always defaults to {@code Active}. For a detailed and exact state, check the
+ * {@code lifecycleDetails} state.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder
+ */
+ public Builder lifecycleState(LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ this.__explicitlySet__.add("lifecycleState");
+ return this;
+ }
+ /**
+ * The CCD commitment's current state. A commitment that's expected to get a dedicated
+ * capacity will be in the Awaiting Provisioning state unless the commitment is ended or
+ * canceled. Otherwise, the value is determined by {@code timeCcdCommitmentStarts}, {@code
+ * timeCcdCommitmentEnds}, and {@code timeTerminated}, with respect to the current time.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private LifecycleDetails lifecycleDetails;
+
+ /**
+ * The CCD commitment's current state. A commitment that's expected to get a dedicated
+ * capacity will be in the Awaiting Provisioning state unless the commitment is ended or
+ * canceled. Otherwise, the value is determined by {@code timeCcdCommitmentStarts}, {@code
+ * timeCcdCommitmentEnds}, and {@code timeTerminated}, with respect to the current time.
+ *
+ * @param lifecycleDetails the value to set
+ * @return this builder
+ */
+ public Builder lifecycleDetails(LifecycleDetails lifecycleDetails) {
+ this.lifecycleDetails = lifecycleDetails;
+ this.__explicitlySet__.add("lifecycleDetails");
+ return this;
+ }
+ /**
+ * The list of SKUs associated with the commitment and their prices in all currency codes.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuQuantityPriceModel")
+ private java.util.List skuQuantityPriceModel;
+
+ /**
+ * The list of SKUs associated with the commitment and their prices in all currency codes.
+ *
+ * @param skuQuantityPriceModel the value to set
+ * @return this builder
+ */
+ public Builder skuQuantityPriceModel(
+ java.util.List skuQuantityPriceModel) {
+ this.skuQuantityPriceModel = skuQuantityPriceModel;
+ this.__explicitlySet__.add("skuQuantityPriceModel");
+ return this;
+ }
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private java.util.Date timeCreated;
+
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-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;
+ }
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example:
+ * {@code 2025-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private java.util.Date timeUpdated;
+
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example:
+ * {@code 2025-01-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;
+ }
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeTerminated")
+ private java.util.Date timeTerminated;
+
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ *
+ * @param timeTerminated the value to set
+ * @return this builder
+ */
+ public Builder timeTerminated(java.util.Date timeTerminated) {
+ this.timeTerminated = timeTerminated;
+ this.__explicitlySet__.add("timeTerminated");
+ 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": {"free-tier-retained": "true"}}}
+ */
+ @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": {"free-tier-retained": "true"}}}
+ *
+ * @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;
+ }
+ /** Entity/User who lastly updated the ccdCommitment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lastUpdatedBy")
+ private String lastUpdatedBy;
+
+ /**
+ * Entity/User who lastly updated the ccdCommitment.
+ *
+ * @param lastUpdatedBy the value to set
+ * @return this builder
+ */
+ public Builder lastUpdatedBy(String lastUpdatedBy) {
+ this.lastUpdatedBy = lastUpdatedBy;
+ this.__explicitlySet__.add("lastUpdatedBy");
+ return this;
+ }
+ /** The entity that created the CCD commitment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("createdBy")
+ private String createdBy;
+
+ /**
+ * The entity that created the CCD commitment.
+ *
+ * @param createdBy the value to set
+ * @return this builder
+ */
+ public Builder createdBy(String createdBy) {
+ this.createdBy = createdBy;
+ this.__explicitlySet__.add("createdBy");
+ return this;
+ }
+ /** Entity/User who approved the ccdCommitment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("approvedBy")
+ private String approvedBy;
+
+ /**
+ * Entity/User who approved the ccdCommitment.
+ *
+ * @param approvedBy the value to set
+ * @return this builder
+ */
+ public Builder approvedBy(String approvedBy) {
+ this.approvedBy = approvedBy;
+ this.__explicitlySet__.add("approvedBy");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public CcdCommitment build() {
+ CcdCommitment model =
+ new CcdCommitment(
+ this.id,
+ this.quantity,
+ this.displayName,
+ this.offerId,
+ this.sourceType,
+ this.reclaimTerm,
+ this.reclaimTermUnit,
+ this.timeCcdCommitmentStarts,
+ this.timeCcdCommitmentEnds,
+ this.subscriptionId,
+ this.compartmentId,
+ this.fillerTenancyId,
+ this.fillerTenancyHomeRegion,
+ this.usageEligibility,
+ this.secondarySkus,
+ this.lifecycleState,
+ this.lifecycleDetails,
+ this.skuQuantityPriceModel,
+ this.timeCreated,
+ this.timeUpdated,
+ this.timeTerminated,
+ this.freeformTags,
+ this.definedTags,
+ this.systemTags,
+ this.lastUpdatedBy,
+ this.createdBy,
+ this.approvedBy);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CcdCommitment model) {
+ if (model.wasPropertyExplicitlySet("id")) {
+ this.id(model.getId());
+ }
+ if (model.wasPropertyExplicitlySet("quantity")) {
+ this.quantity(model.getQuantity());
+ }
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("offerId")) {
+ this.offerId(model.getOfferId());
+ }
+ if (model.wasPropertyExplicitlySet("sourceType")) {
+ this.sourceType(model.getSourceType());
+ }
+ if (model.wasPropertyExplicitlySet("reclaimTerm")) {
+ this.reclaimTerm(model.getReclaimTerm());
+ }
+ if (model.wasPropertyExplicitlySet("reclaimTermUnit")) {
+ this.reclaimTermUnit(model.getReclaimTermUnit());
+ }
+ if (model.wasPropertyExplicitlySet("timeCcdCommitmentStarts")) {
+ this.timeCcdCommitmentStarts(model.getTimeCcdCommitmentStarts());
+ }
+ if (model.wasPropertyExplicitlySet("timeCcdCommitmentEnds")) {
+ this.timeCcdCommitmentEnds(model.getTimeCcdCommitmentEnds());
+ }
+ if (model.wasPropertyExplicitlySet("subscriptionId")) {
+ this.subscriptionId(model.getSubscriptionId());
+ }
+ if (model.wasPropertyExplicitlySet("compartmentId")) {
+ this.compartmentId(model.getCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("fillerTenancyId")) {
+ this.fillerTenancyId(model.getFillerTenancyId());
+ }
+ if (model.wasPropertyExplicitlySet("fillerTenancyHomeRegion")) {
+ this.fillerTenancyHomeRegion(model.getFillerTenancyHomeRegion());
+ }
+ if (model.wasPropertyExplicitlySet("usageEligibility")) {
+ this.usageEligibility(model.getUsageEligibility());
+ }
+ if (model.wasPropertyExplicitlySet("secondarySkus")) {
+ this.secondarySkus(model.getSecondarySkus());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleState")) {
+ this.lifecycleState(model.getLifecycleState());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleDetails")) {
+ this.lifecycleDetails(model.getLifecycleDetails());
+ }
+ if (model.wasPropertyExplicitlySet("skuQuantityPriceModel")) {
+ this.skuQuantityPriceModel(model.getSkuQuantityPriceModel());
+ }
+ if (model.wasPropertyExplicitlySet("timeCreated")) {
+ this.timeCreated(model.getTimeCreated());
+ }
+ if (model.wasPropertyExplicitlySet("timeUpdated")) {
+ this.timeUpdated(model.getTimeUpdated());
+ }
+ if (model.wasPropertyExplicitlySet("timeTerminated")) {
+ this.timeTerminated(model.getTimeTerminated());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ if (model.wasPropertyExplicitlySet("systemTags")) {
+ this.systemTags(model.getSystemTags());
+ }
+ if (model.wasPropertyExplicitlySet("lastUpdatedBy")) {
+ this.lastUpdatedBy(model.getLastUpdatedBy());
+ }
+ if (model.wasPropertyExplicitlySet("createdBy")) {
+ this.createdBy(model.getCreatedBy());
+ }
+ if (model.wasPropertyExplicitlySet("approvedBy")) {
+ this.approvedBy(model.getApprovedBy());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** The CCD commitment resource OCID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private final String id;
+
+ /**
+ * The CCD commitment resource OCID.
+ *
+ * @return the value
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * The hourly quantity that the customer is committing to a CCD offer's main SKU. For example,
+ * if the quantity is 1000, then you are committing to a 1000 usage quantity value per hour.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("quantity")
+ private final Long quantity;
+
+ /**
+ * The hourly quantity that the customer is committing to a CCD offer's main SKU. For example,
+ * if the quantity is 1000, then you are committing to a 1000 usage quantity value per hour.
+ *
+ * @return the value
+ */
+ public Long getQuantity() {
+ return quantity;
+ }
+
+ /**
+ * The CCD commitment name. Ensure the name is unique for a given subscription ID. Avoid
+ * entering confidential information.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * The CCD commitment name. Ensure the name is unique for a given subscription ID. Avoid
+ * entering confidential information.
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /** The CCD offer OCID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("offerId")
+ private final String offerId;
+
+ /**
+ * The CCD offer OCID.
+ *
+ * @return the value
+ */
+ public String getOfferId() {
+ return offerId;
+ }
+
+ /** The commercial workflow of the associated CCD offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceType")
+ private final CcdOffer.SourceType sourceType;
+
+ /**
+ * The commercial workflow of the associated CCD offer.
+ *
+ * @return the value
+ */
+ public CcdOffer.SourceType getSourceType() {
+ return sourceType;
+ }
+
+ /**
+ * The reclaim term copied from the offer when the commitment is created. The value is measured
+ * in {@code reclaimTermUnit}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTerm")
+ private final Long reclaimTerm;
+
+ /**
+ * The reclaim term copied from the offer when the commitment is created. The value is measured
+ * in {@code reclaimTermUnit}.
+ *
+ * @return the value
+ */
+ public Long getReclaimTerm() {
+ return reclaimTerm;
+ }
+
+ /**
+ * The unit used to measure {@code reclaimTerm}, copied from the offer when the commitment is
+ * created.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTermUnit")
+ private final CcdOffer.ReclaimTermUnit reclaimTermUnit;
+
+ /**
+ * The unit used to measure {@code reclaimTerm}, copied from the offer when the commitment is
+ * created.
+ *
+ * @return the value
+ */
+ public CcdOffer.ReclaimTermUnit getReclaimTermUnit() {
+ return reclaimTermUnit;
+ }
+
+ /** The date and time the CCD commitment will be effective.The format is defined by RFC 3339. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdCommitmentStarts")
+ private final java.util.Date timeCcdCommitmentStarts;
+
+ /**
+ * The date and time the CCD commitment will be effective.The format is defined by RFC 3339.
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCcdCommitmentStarts() {
+ return timeCcdCommitmentStarts;
+ }
+
+ /**
+ * The date and time the CCD commitment will be deactivated. The date and time is calculated
+ * based on {@code timeCcdCommitmentStarts}, the term, and units of the CCD offer. For example:
+ * {@code 2025-06-01T03:00:00}. The format is defined by RFC 3339.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdCommitmentEnds")
+ private final java.util.Date timeCcdCommitmentEnds;
+
+ /**
+ * The date and time the CCD commitment will be deactivated. The date and time is calculated
+ * based on {@code timeCcdCommitmentStarts}, the term, and units of the CCD offer. For example:
+ * {@code 2025-06-01T03:00:00}. The format is defined by RFC 3339.
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCcdCommitmentEnds() {
+ return timeCcdCommitmentEnds;
+ }
+
+ /** The subscription ID the CCD offer is applicable to. */
+ @com.fasterxml.jackson.annotation.JsonProperty("subscriptionId")
+ private final String subscriptionId;
+
+ /**
+ * The subscription ID the CCD offer is applicable to.
+ *
+ * @return the value
+ */
+ public String getSubscriptionId() {
+ return subscriptionId;
+ }
+
+ /**
+ * The root compartment ID. The CCD Commitment is associated with the tenancy root compartment
+ * ID.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private final String compartmentId;
+
+ /**
+ * The root compartment ID. The CCD Commitment is associated with the tenancy root compartment
+ * ID.
+ *
+ * @return the value
+ */
+ public String getCompartmentId() {
+ return compartmentId;
+ }
+
+ /** The tenancy OCID that you want to apply filler usage to. */
+ @com.fasterxml.jackson.annotation.JsonProperty("fillerTenancyId")
+ private final String fillerTenancyId;
+
+ /**
+ * The tenancy OCID that you want to apply filler usage to.
+ *
+ * @return the value
+ */
+ public String getFillerTenancyId() {
+ return fillerTenancyId;
+ }
+
+ /** The filler tenancy home region. */
+ @com.fasterxml.jackson.annotation.JsonProperty("fillerTenancyHomeRegion")
+ private final String fillerTenancyHomeRegion;
+
+ /**
+ * The filler tenancy home region.
+ *
+ * @return the value
+ */
+ public String getFillerTenancyHomeRegion() {
+ return fillerTenancyHomeRegion;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("usageEligibility")
+ private final UsageEligibility usageEligibility;
+
+ public UsageEligibility getUsageEligibility() {
+ return usageEligibility;
+ }
+
+ /** Secondary SKUs associated with the main SKU. */
+ @com.fasterxml.jackson.annotation.JsonProperty("secondarySkus")
+ private final java.util.List secondarySkus;
+
+ /**
+ * Secondary SKUs associated with the main SKU.
+ *
+ * @return the value
+ */
+ public java.util.List getSecondarySkus() {
+ return secondarySkus;
+ }
+
+ /**
+ * This state always defaults to {@code Active}. For a detailed and exact state, check the
+ * {@code lifecycleDetails} state.
+ */
+ public enum LifecycleState implements com.oracle.bmc.http.internal.BmcEnum {
+ Active("ACTIVE"),
+
+ /**
+ * 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;
+ }
+ };
+ /**
+ * This state always defaults to {@code Active}. For a detailed and exact state, check the
+ * {@code lifecycleDetails} state.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private final LifecycleState lifecycleState;
+
+ /**
+ * This state always defaults to {@code Active}. For a detailed and exact state, check the
+ * {@code lifecycleDetails} state.
+ *
+ * @return the value
+ */
+ public LifecycleState getLifecycleState() {
+ return lifecycleState;
+ }
+
+ /**
+ * The CCD commitment's current state. A commitment that's expected to get a dedicated capacity
+ * will be in the Awaiting Provisioning state unless the commitment is ended or canceled.
+ * Otherwise, the value is determined by {@code timeCcdCommitmentStarts}, {@code
+ * timeCcdCommitmentEnds}, and {@code timeTerminated}, with respect to the current time.
+ */
+ public enum LifecycleDetails implements com.oracle.bmc.http.internal.BmcEnum {
+ Current("CURRENT"),
+ Ended("ENDED"),
+ Canceled("CANCELED"),
+ Scheduled("SCHEDULED"),
+ AwaitingProvisioning("AWAITING_PROVISIONING"),
+
+ /**
+ * 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(LifecycleDetails.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (LifecycleDetails v : LifecycleDetails.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ LifecycleDetails(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static LifecycleDetails create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'LifecycleDetails', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /**
+ * The CCD commitment's current state. A commitment that's expected to get a dedicated capacity
+ * will be in the Awaiting Provisioning state unless the commitment is ended or canceled.
+ * Otherwise, the value is determined by {@code timeCcdCommitmentStarts}, {@code
+ * timeCcdCommitmentEnds}, and {@code timeTerminated}, with respect to the current time.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private final LifecycleDetails lifecycleDetails;
+
+ /**
+ * The CCD commitment's current state. A commitment that's expected to get a dedicated capacity
+ * will be in the Awaiting Provisioning state unless the commitment is ended or canceled.
+ * Otherwise, the value is determined by {@code timeCcdCommitmentStarts}, {@code
+ * timeCcdCommitmentEnds}, and {@code timeTerminated}, with respect to the current time.
+ *
+ * @return the value
+ */
+ public LifecycleDetails getLifecycleDetails() {
+ return lifecycleDetails;
+ }
+
+ /** The list of SKUs associated with the commitment and their prices in all currency codes. */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuQuantityPriceModel")
+ private final java.util.List skuQuantityPriceModel;
+
+ /**
+ * The list of SKUs associated with the commitment and their prices in all currency codes.
+ *
+ * @return the value
+ */
+ public java.util.List getSkuQuantityPriceModel() {
+ return skuQuantityPriceModel;
+ }
+
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private final java.util.Date timeCreated;
+
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCreated() {
+ return timeCreated;
+ }
+
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example: {@code
+ * 2025-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private final java.util.Date timeUpdated;
+
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example: {@code
+ * 2025-01-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeUpdated() {
+ return timeUpdated;
+ }
+
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeTerminated")
+ private final java.util.Date timeTerminated;
+
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeTerminated() {
+ return timeTerminated;
+ }
+
+ /**
+ * 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": {"free-tier-retained": "true"}}}
+ */
+ @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": {"free-tier-retained": "true"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map> getSystemTags() {
+ return systemTags;
+ }
+
+ /** Entity/User who lastly updated the ccdCommitment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lastUpdatedBy")
+ private final String lastUpdatedBy;
+
+ /**
+ * Entity/User who lastly updated the ccdCommitment.
+ *
+ * @return the value
+ */
+ public String getLastUpdatedBy() {
+ return lastUpdatedBy;
+ }
+
+ /** The entity that created the CCD commitment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("createdBy")
+ private final String createdBy;
+
+ /**
+ * The entity that created the CCD commitment.
+ *
+ * @return the value
+ */
+ public String getCreatedBy() {
+ return createdBy;
+ }
+
+ /** Entity/User who approved the ccdCommitment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("approvedBy")
+ private final String approvedBy;
+
+ /**
+ * Entity/User who approved the ccdCommitment.
+ *
+ * @return the value
+ */
+ public String getApprovedBy() {
+ return approvedBy;
+ }
+
+ @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("CcdCommitment(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", quantity=").append(String.valueOf(this.quantity));
+ sb.append(", displayName=").append(String.valueOf(this.displayName));
+ sb.append(", offerId=").append(String.valueOf(this.offerId));
+ sb.append(", sourceType=").append(String.valueOf(this.sourceType));
+ sb.append(", reclaimTerm=").append(String.valueOf(this.reclaimTerm));
+ sb.append(", reclaimTermUnit=").append(String.valueOf(this.reclaimTermUnit));
+ sb.append(", timeCcdCommitmentStarts=")
+ .append(String.valueOf(this.timeCcdCommitmentStarts));
+ sb.append(", timeCcdCommitmentEnds=").append(String.valueOf(this.timeCcdCommitmentEnds));
+ sb.append(", subscriptionId=").append(String.valueOf(this.subscriptionId));
+ sb.append(", compartmentId=").append(String.valueOf(this.compartmentId));
+ sb.append(", fillerTenancyId=").append(String.valueOf(this.fillerTenancyId));
+ sb.append(", fillerTenancyHomeRegion=")
+ .append(String.valueOf(this.fillerTenancyHomeRegion));
+ sb.append(", usageEligibility=").append(String.valueOf(this.usageEligibility));
+ sb.append(", secondarySkus=").append(String.valueOf(this.secondarySkus));
+ sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState));
+ sb.append(", lifecycleDetails=").append(String.valueOf(this.lifecycleDetails));
+ sb.append(", skuQuantityPriceModel=").append(String.valueOf(this.skuQuantityPriceModel));
+ sb.append(", timeCreated=").append(String.valueOf(this.timeCreated));
+ sb.append(", timeUpdated=").append(String.valueOf(this.timeUpdated));
+ sb.append(", timeTerminated=").append(String.valueOf(this.timeTerminated));
+ 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(", lastUpdatedBy=").append(String.valueOf(this.lastUpdatedBy));
+ sb.append(", createdBy=").append(String.valueOf(this.createdBy));
+ sb.append(", approvedBy=").append(String.valueOf(this.approvedBy));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CcdCommitment)) {
+ return false;
+ }
+
+ CcdCommitment other = (CcdCommitment) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.quantity, other.quantity)
+ && java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(this.offerId, other.offerId)
+ && java.util.Objects.equals(this.sourceType, other.sourceType)
+ && java.util.Objects.equals(this.reclaimTerm, other.reclaimTerm)
+ && java.util.Objects.equals(this.reclaimTermUnit, other.reclaimTermUnit)
+ && java.util.Objects.equals(
+ this.timeCcdCommitmentStarts, other.timeCcdCommitmentStarts)
+ && java.util.Objects.equals(this.timeCcdCommitmentEnds, other.timeCcdCommitmentEnds)
+ && java.util.Objects.equals(this.subscriptionId, other.subscriptionId)
+ && java.util.Objects.equals(this.compartmentId, other.compartmentId)
+ && java.util.Objects.equals(this.fillerTenancyId, other.fillerTenancyId)
+ && java.util.Objects.equals(
+ this.fillerTenancyHomeRegion, other.fillerTenancyHomeRegion)
+ && java.util.Objects.equals(this.usageEligibility, other.usageEligibility)
+ && java.util.Objects.equals(this.secondarySkus, other.secondarySkus)
+ && java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
+ && java.util.Objects.equals(this.lifecycleDetails, other.lifecycleDetails)
+ && java.util.Objects.equals(this.skuQuantityPriceModel, other.skuQuantityPriceModel)
+ && java.util.Objects.equals(this.timeCreated, other.timeCreated)
+ && java.util.Objects.equals(this.timeUpdated, other.timeUpdated)
+ && java.util.Objects.equals(this.timeTerminated, other.timeTerminated)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && java.util.Objects.equals(this.systemTags, other.systemTags)
+ && java.util.Objects.equals(this.lastUpdatedBy, other.lastUpdatedBy)
+ && java.util.Objects.equals(this.createdBy, other.createdBy)
+ && java.util.Objects.equals(this.approvedBy, other.approvedBy)
+ && 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.quantity == null ? 43 : this.quantity.hashCode());
+ result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
+ result = (result * PRIME) + (this.offerId == null ? 43 : this.offerId.hashCode());
+ result = (result * PRIME) + (this.sourceType == null ? 43 : this.sourceType.hashCode());
+ result = (result * PRIME) + (this.reclaimTerm == null ? 43 : this.reclaimTerm.hashCode());
+ result =
+ (result * PRIME)
+ + (this.reclaimTermUnit == null ? 43 : this.reclaimTermUnit.hashCode());
+ result =
+ (result * PRIME)
+ + (this.timeCcdCommitmentStarts == null
+ ? 43
+ : this.timeCcdCommitmentStarts.hashCode());
+ result =
+ (result * PRIME)
+ + (this.timeCcdCommitmentEnds == null
+ ? 43
+ : this.timeCcdCommitmentEnds.hashCode());
+ result =
+ (result * PRIME)
+ + (this.subscriptionId == null ? 43 : this.subscriptionId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.compartmentId == null ? 43 : this.compartmentId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.fillerTenancyId == null ? 43 : this.fillerTenancyId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.fillerTenancyHomeRegion == null
+ ? 43
+ : this.fillerTenancyHomeRegion.hashCode());
+ result =
+ (result * PRIME)
+ + (this.usageEligibility == null ? 43 : this.usageEligibility.hashCode());
+ result =
+ (result * PRIME)
+ + (this.secondarySkus == null ? 43 : this.secondarySkus.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.skuQuantityPriceModel == null
+ ? 43
+ : this.skuQuantityPriceModel.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.timeTerminated == null ? 43 : this.timeTerminated.hashCode());
+ result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
+ result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
+ result = (result * PRIME) + (this.systemTags == null ? 43 : this.systemTags.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lastUpdatedBy == null ? 43 : this.lastUpdatedBy.hashCode());
+ result = (result * PRIME) + (this.createdBy == null ? 43 : this.createdBy.hashCode());
+ result = (result * PRIME) + (this.approvedBy == null ? 43 : this.approvedBy.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdCommitmentCollection.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdCommitmentCollection.java
new file mode 100644
index 00000000000..ff646ae76d5
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdCommitmentCollection.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.ccdoffers.model;
+
+/**
+ * CCD commitment summary items.
+ * 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: 20240601")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = CcdCommitmentCollection.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CcdCommitmentCollection
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"items"})
+ public CcdCommitmentCollection(java.util.List items) {
+ super();
+ this.items = items;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The CCD commitment summary. */
+ @com.fasterxml.jackson.annotation.JsonProperty("items")
+ private java.util.List items;
+
+ /**
+ * The CCD commitment summary.
+ *
+ * @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 CcdCommitmentCollection build() {
+ CcdCommitmentCollection model = new CcdCommitmentCollection(this.items);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CcdCommitmentCollection 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);
+ }
+
+ /** The CCD commitment summary. */
+ @com.fasterxml.jackson.annotation.JsonProperty("items")
+ private final java.util.List items;
+
+ /**
+ * The CCD commitment summary.
+ *
+ * @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("CcdCommitmentCollection(");
+ 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 CcdCommitmentCollection)) {
+ return false;
+ }
+
+ CcdCommitmentCollection other = (CcdCommitmentCollection) 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-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdCommitmentSummary.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdCommitmentSummary.java
new file mode 100644
index 00000000000..61d37dcbd10
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdCommitmentSummary.java
@@ -0,0 +1,1313 @@
+/**
+ * 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.ccdoffers.model;
+
+/**
+ * The CCD commitment summary.
+ * 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: 20240601")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = CcdCommitmentSummary.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CcdCommitmentSummary
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "quantity",
+ "offerId",
+ "sourceType",
+ "reclaimTerm",
+ "reclaimTermUnit",
+ "displayName",
+ "timeCcdCommitmentStarts",
+ "timeCcdCommitmentEnds",
+ "subscriptionId",
+ "compartmentId",
+ "fillerTenancyId",
+ "fillerTenancyHomeRegion",
+ "usageEligibility",
+ "lifecycleState",
+ "lifecycleDetails",
+ "skuQuantityPriceModel",
+ "secondarySkus",
+ "timeCreated",
+ "timeUpdated",
+ "timeTerminated",
+ "freeformTags",
+ "definedTags",
+ "systemTags",
+ "lastUpdatedBy",
+ "createdBy",
+ "approvedBy"
+ })
+ public CcdCommitmentSummary(
+ String id,
+ Long quantity,
+ String offerId,
+ CcdOffer.SourceType sourceType,
+ Long reclaimTerm,
+ CcdOffer.ReclaimTermUnit reclaimTermUnit,
+ String displayName,
+ java.util.Date timeCcdCommitmentStarts,
+ java.util.Date timeCcdCommitmentEnds,
+ String subscriptionId,
+ String compartmentId,
+ String fillerTenancyId,
+ String fillerTenancyHomeRegion,
+ UsageEligibility usageEligibility,
+ CcdCommitment.LifecycleState lifecycleState,
+ CcdCommitment.LifecycleDetails lifecycleDetails,
+ java.util.List skuQuantityPriceModel,
+ java.util.List secondarySkus,
+ java.util.Date timeCreated,
+ java.util.Date timeUpdated,
+ java.util.Date timeTerminated,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ java.util.Map> systemTags,
+ String lastUpdatedBy,
+ String createdBy,
+ String approvedBy) {
+ super();
+ this.id = id;
+ this.quantity = quantity;
+ this.offerId = offerId;
+ this.sourceType = sourceType;
+ this.reclaimTerm = reclaimTerm;
+ this.reclaimTermUnit = reclaimTermUnit;
+ this.displayName = displayName;
+ this.timeCcdCommitmentStarts = timeCcdCommitmentStarts;
+ this.timeCcdCommitmentEnds = timeCcdCommitmentEnds;
+ this.subscriptionId = subscriptionId;
+ this.compartmentId = compartmentId;
+ this.fillerTenancyId = fillerTenancyId;
+ this.fillerTenancyHomeRegion = fillerTenancyHomeRegion;
+ this.usageEligibility = usageEligibility;
+ this.lifecycleState = lifecycleState;
+ this.lifecycleDetails = lifecycleDetails;
+ this.skuQuantityPriceModel = skuQuantityPriceModel;
+ this.secondarySkus = secondarySkus;
+ this.timeCreated = timeCreated;
+ this.timeUpdated = timeUpdated;
+ this.timeTerminated = timeTerminated;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.systemTags = systemTags;
+ this.lastUpdatedBy = lastUpdatedBy;
+ this.createdBy = createdBy;
+ this.approvedBy = approvedBy;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The CCD commitment resource OCID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * The CCD commitment resource OCID.
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /**
+ * The hourly quantity that the customer is committing to a CCD offer's main SKU. For
+ * example, if the quantity is 1000, then you are committing to a 1000 usage quantity value
+ * per hour.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("quantity")
+ private Long quantity;
+
+ /**
+ * The hourly quantity that the customer is committing to a CCD offer's main SKU. For
+ * example, if the quantity is 1000, then you are committing to a 1000 usage quantity value
+ * per hour.
+ *
+ * @param quantity the value to set
+ * @return this builder
+ */
+ public Builder quantity(Long quantity) {
+ this.quantity = quantity;
+ this.__explicitlySet__.add("quantity");
+ return this;
+ }
+ /** The CCD offer OCID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("offerId")
+ private String offerId;
+
+ /**
+ * The CCD offer OCID.
+ *
+ * @param offerId the value to set
+ * @return this builder
+ */
+ public Builder offerId(String offerId) {
+ this.offerId = offerId;
+ this.__explicitlySet__.add("offerId");
+ return this;
+ }
+ /** The commercial workflow of the associated CCD offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceType")
+ private CcdOffer.SourceType sourceType;
+
+ /**
+ * The commercial workflow of the associated CCD offer.
+ *
+ * @param sourceType the value to set
+ * @return this builder
+ */
+ public Builder sourceType(CcdOffer.SourceType sourceType) {
+ this.sourceType = sourceType;
+ this.__explicitlySet__.add("sourceType");
+ return this;
+ }
+ /**
+ * The reclaim term copied from the offer when the commitment is created. The value is
+ * measured in {@code reclaimTermUnit}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTerm")
+ private Long reclaimTerm;
+
+ /**
+ * The reclaim term copied from the offer when the commitment is created. The value is
+ * measured in {@code reclaimTermUnit}.
+ *
+ * @param reclaimTerm the value to set
+ * @return this builder
+ */
+ public Builder reclaimTerm(Long reclaimTerm) {
+ this.reclaimTerm = reclaimTerm;
+ this.__explicitlySet__.add("reclaimTerm");
+ return this;
+ }
+ /**
+ * The unit used to measure {@code reclaimTerm}, copied from the offer when the commitment
+ * is created.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTermUnit")
+ private CcdOffer.ReclaimTermUnit reclaimTermUnit;
+
+ /**
+ * The unit used to measure {@code reclaimTerm}, copied from the offer when the commitment
+ * is created.
+ *
+ * @param reclaimTermUnit the value to set
+ * @return this builder
+ */
+ public Builder reclaimTermUnit(CcdOffer.ReclaimTermUnit reclaimTermUnit) {
+ this.reclaimTermUnit = reclaimTermUnit;
+ this.__explicitlySet__.add("reclaimTermUnit");
+ return this;
+ }
+ /**
+ * The CCD commitment name. The name will be unique across the subscription for which the
+ * CCD commitment has been created. Avoid entering confidential information.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * The CCD commitment name. The name will be unique across the subscription for which the
+ * CCD commitment has been created. 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 date and time, rounded down to an hour, that the CCD commitment will be effective.
+ * The format conforms to RFC 3339.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdCommitmentStarts")
+ private java.util.Date timeCcdCommitmentStarts;
+
+ /**
+ * The date and time, rounded down to an hour, that the CCD commitment will be effective.
+ * The format conforms to RFC 3339.
+ *
+ * @param timeCcdCommitmentStarts the value to set
+ * @return this builder
+ */
+ public Builder timeCcdCommitmentStarts(java.util.Date timeCcdCommitmentStarts) {
+ this.timeCcdCommitmentStarts = timeCcdCommitmentStarts;
+ this.__explicitlySet__.add("timeCcdCommitmentStarts");
+ return this;
+ }
+ /**
+ * The date and time the CCD commitment ends, which is calculated from the {@code
+ * timeCcdCommitmentStarts} of the {@code ccdCommitment}, the term, and {@code ccdOffer}
+ * units. The format must conform to RFC 3339.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdCommitmentEnds")
+ private java.util.Date timeCcdCommitmentEnds;
+
+ /**
+ * The date and time the CCD commitment ends, which is calculated from the {@code
+ * timeCcdCommitmentStarts} of the {@code ccdCommitment}, the term, and {@code ccdOffer}
+ * units. The format must conform to RFC 3339.
+ *
+ * @param timeCcdCommitmentEnds the value to set
+ * @return this builder
+ */
+ public Builder timeCcdCommitmentEnds(java.util.Date timeCcdCommitmentEnds) {
+ this.timeCcdCommitmentEnds = timeCcdCommitmentEnds;
+ this.__explicitlySet__.add("timeCcdCommitmentEnds");
+ return this;
+ }
+ /** The subscription OCID the CCD commitment is applicable to. */
+ @com.fasterxml.jackson.annotation.JsonProperty("subscriptionId")
+ private String subscriptionId;
+
+ /**
+ * The subscription OCID the CCD commitment is applicable to.
+ *
+ * @param subscriptionId the value to set
+ * @return this builder
+ */
+ public Builder subscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ this.__explicitlySet__.add("subscriptionId");
+ return this;
+ }
+ /** The root compartment ID associated with the CCD offer the customer has signed up for. */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private String compartmentId;
+
+ /**
+ * The root compartment ID associated with the CCD offer the customer has signed up for.
+ *
+ * @param compartmentId the value to set
+ * @return this builder
+ */
+ public Builder compartmentId(String compartmentId) {
+ this.compartmentId = compartmentId;
+ this.__explicitlySet__.add("compartmentId");
+ return this;
+ }
+ /** The tenancy OCID that you want to apply filler usage to. */
+ @com.fasterxml.jackson.annotation.JsonProperty("fillerTenancyId")
+ private String fillerTenancyId;
+
+ /**
+ * The tenancy OCID that you want to apply filler usage to.
+ *
+ * @param fillerTenancyId the value to set
+ * @return this builder
+ */
+ public Builder fillerTenancyId(String fillerTenancyId) {
+ this.fillerTenancyId = fillerTenancyId;
+ this.__explicitlySet__.add("fillerTenancyId");
+ return this;
+ }
+ /** The filler tenancy home region. */
+ @com.fasterxml.jackson.annotation.JsonProperty("fillerTenancyHomeRegion")
+ private String fillerTenancyHomeRegion;
+
+ /**
+ * The filler tenancy home region.
+ *
+ * @param fillerTenancyHomeRegion the value to set
+ * @return this builder
+ */
+ public Builder fillerTenancyHomeRegion(String fillerTenancyHomeRegion) {
+ this.fillerTenancyHomeRegion = fillerTenancyHomeRegion;
+ this.__explicitlySet__.add("fillerTenancyHomeRegion");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("usageEligibility")
+ private UsageEligibility usageEligibility;
+
+ public Builder usageEligibility(UsageEligibility usageEligibility) {
+ this.usageEligibility = usageEligibility;
+ this.__explicitlySet__.add("usageEligibility");
+ return this;
+ }
+ /**
+ * The CCD commitment's current state, which always defaults to {@code Active}. For a more
+ * accurate detailed state, refer to {@code lifecycleDetails}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private CcdCommitment.LifecycleState lifecycleState;
+
+ /**
+ * The CCD commitment's current state, which always defaults to {@code Active}. For a more
+ * accurate detailed state, refer to {@code lifecycleDetails}.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder
+ */
+ public Builder lifecycleState(CcdCommitment.LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ this.__explicitlySet__.add("lifecycleState");
+ return this;
+ }
+ /**
+ * The CCD commitment's current state. A commitment that's expected to get a dedicated
+ * capacity will be in the Awaiting Provisioning state unless the commitment is ended or
+ * canceled. Otherwise, the value is determined by {@code timeCcdCommitmentStarts}, {@code
+ * timeCcdCommitmentEnds}, and {@code timeTerminated}, with respect to the current time.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private CcdCommitment.LifecycleDetails lifecycleDetails;
+
+ /**
+ * The CCD commitment's current state. A commitment that's expected to get a dedicated
+ * capacity will be in the Awaiting Provisioning state unless the commitment is ended or
+ * canceled. Otherwise, the value is determined by {@code timeCcdCommitmentStarts}, {@code
+ * timeCcdCommitmentEnds}, and {@code timeTerminated}, with respect to the current time.
+ *
+ * @param lifecycleDetails the value to set
+ * @return this builder
+ */
+ public Builder lifecycleDetails(CcdCommitment.LifecycleDetails lifecycleDetails) {
+ this.lifecycleDetails = lifecycleDetails;
+ this.__explicitlySet__.add("lifecycleDetails");
+ return this;
+ }
+ /**
+ * The list of SKUs associated with the commitment and their prices in all currency codes.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuQuantityPriceModel")
+ private java.util.List skuQuantityPriceModel;
+
+ /**
+ * The list of SKUs associated with the commitment and their prices in all currency codes.
+ *
+ * @param skuQuantityPriceModel the value to set
+ * @return this builder
+ */
+ public Builder skuQuantityPriceModel(
+ java.util.List skuQuantityPriceModel) {
+ this.skuQuantityPriceModel = skuQuantityPriceModel;
+ this.__explicitlySet__.add("skuQuantityPriceModel");
+ return this;
+ }
+ /** The secondary SKUs associated with the main SKU. */
+ @com.fasterxml.jackson.annotation.JsonProperty("secondarySkus")
+ private java.util.List secondarySkus;
+
+ /**
+ * The secondary SKUs associated with the main SKU.
+ *
+ * @param secondarySkus the value to set
+ * @return this builder
+ */
+ public Builder secondarySkus(java.util.List secondarySkus) {
+ this.secondarySkus = secondarySkus;
+ this.__explicitlySet__.add("secondarySkus");
+ return this;
+ }
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private java.util.Date timeCreated;
+
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-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;
+ }
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example:
+ * {@code 2025-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private java.util.Date timeUpdated;
+
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example:
+ * {@code 2025-01-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;
+ }
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeTerminated")
+ private java.util.Date timeTerminated;
+
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ *
+ * @param timeTerminated the value to set
+ * @return this builder
+ */
+ public Builder timeTerminated(java.util.Date timeTerminated) {
+ this.timeTerminated = timeTerminated;
+ this.__explicitlySet__.add("timeTerminated");
+ 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": {"free-tier-retained": "true"}}}
+ */
+ @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": {"free-tier-retained": "true"}}}
+ *
+ * @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;
+ }
+ /** Entity/User who lastly updated the ccdCommitment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lastUpdatedBy")
+ private String lastUpdatedBy;
+
+ /**
+ * Entity/User who lastly updated the ccdCommitment.
+ *
+ * @param lastUpdatedBy the value to set
+ * @return this builder
+ */
+ public Builder lastUpdatedBy(String lastUpdatedBy) {
+ this.lastUpdatedBy = lastUpdatedBy;
+ this.__explicitlySet__.add("lastUpdatedBy");
+ return this;
+ }
+ /** The entity that created the CCD commitment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("createdBy")
+ private String createdBy;
+
+ /**
+ * The entity that created the CCD commitment.
+ *
+ * @param createdBy the value to set
+ * @return this builder
+ */
+ public Builder createdBy(String createdBy) {
+ this.createdBy = createdBy;
+ this.__explicitlySet__.add("createdBy");
+ return this;
+ }
+ /** Entity/User who approved the ccdCommitment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("approvedBy")
+ private String approvedBy;
+
+ /**
+ * Entity/User who approved the ccdCommitment.
+ *
+ * @param approvedBy the value to set
+ * @return this builder
+ */
+ public Builder approvedBy(String approvedBy) {
+ this.approvedBy = approvedBy;
+ this.__explicitlySet__.add("approvedBy");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public CcdCommitmentSummary build() {
+ CcdCommitmentSummary model =
+ new CcdCommitmentSummary(
+ this.id,
+ this.quantity,
+ this.offerId,
+ this.sourceType,
+ this.reclaimTerm,
+ this.reclaimTermUnit,
+ this.displayName,
+ this.timeCcdCommitmentStarts,
+ this.timeCcdCommitmentEnds,
+ this.subscriptionId,
+ this.compartmentId,
+ this.fillerTenancyId,
+ this.fillerTenancyHomeRegion,
+ this.usageEligibility,
+ this.lifecycleState,
+ this.lifecycleDetails,
+ this.skuQuantityPriceModel,
+ this.secondarySkus,
+ this.timeCreated,
+ this.timeUpdated,
+ this.timeTerminated,
+ this.freeformTags,
+ this.definedTags,
+ this.systemTags,
+ this.lastUpdatedBy,
+ this.createdBy,
+ this.approvedBy);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CcdCommitmentSummary model) {
+ if (model.wasPropertyExplicitlySet("id")) {
+ this.id(model.getId());
+ }
+ if (model.wasPropertyExplicitlySet("quantity")) {
+ this.quantity(model.getQuantity());
+ }
+ if (model.wasPropertyExplicitlySet("offerId")) {
+ this.offerId(model.getOfferId());
+ }
+ if (model.wasPropertyExplicitlySet("sourceType")) {
+ this.sourceType(model.getSourceType());
+ }
+ if (model.wasPropertyExplicitlySet("reclaimTerm")) {
+ this.reclaimTerm(model.getReclaimTerm());
+ }
+ if (model.wasPropertyExplicitlySet("reclaimTermUnit")) {
+ this.reclaimTermUnit(model.getReclaimTermUnit());
+ }
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("timeCcdCommitmentStarts")) {
+ this.timeCcdCommitmentStarts(model.getTimeCcdCommitmentStarts());
+ }
+ if (model.wasPropertyExplicitlySet("timeCcdCommitmentEnds")) {
+ this.timeCcdCommitmentEnds(model.getTimeCcdCommitmentEnds());
+ }
+ if (model.wasPropertyExplicitlySet("subscriptionId")) {
+ this.subscriptionId(model.getSubscriptionId());
+ }
+ if (model.wasPropertyExplicitlySet("compartmentId")) {
+ this.compartmentId(model.getCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("fillerTenancyId")) {
+ this.fillerTenancyId(model.getFillerTenancyId());
+ }
+ if (model.wasPropertyExplicitlySet("fillerTenancyHomeRegion")) {
+ this.fillerTenancyHomeRegion(model.getFillerTenancyHomeRegion());
+ }
+ if (model.wasPropertyExplicitlySet("usageEligibility")) {
+ this.usageEligibility(model.getUsageEligibility());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleState")) {
+ this.lifecycleState(model.getLifecycleState());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleDetails")) {
+ this.lifecycleDetails(model.getLifecycleDetails());
+ }
+ if (model.wasPropertyExplicitlySet("skuQuantityPriceModel")) {
+ this.skuQuantityPriceModel(model.getSkuQuantityPriceModel());
+ }
+ if (model.wasPropertyExplicitlySet("secondarySkus")) {
+ this.secondarySkus(model.getSecondarySkus());
+ }
+ if (model.wasPropertyExplicitlySet("timeCreated")) {
+ this.timeCreated(model.getTimeCreated());
+ }
+ if (model.wasPropertyExplicitlySet("timeUpdated")) {
+ this.timeUpdated(model.getTimeUpdated());
+ }
+ if (model.wasPropertyExplicitlySet("timeTerminated")) {
+ this.timeTerminated(model.getTimeTerminated());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ if (model.wasPropertyExplicitlySet("systemTags")) {
+ this.systemTags(model.getSystemTags());
+ }
+ if (model.wasPropertyExplicitlySet("lastUpdatedBy")) {
+ this.lastUpdatedBy(model.getLastUpdatedBy());
+ }
+ if (model.wasPropertyExplicitlySet("createdBy")) {
+ this.createdBy(model.getCreatedBy());
+ }
+ if (model.wasPropertyExplicitlySet("approvedBy")) {
+ this.approvedBy(model.getApprovedBy());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** The CCD commitment resource OCID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private final String id;
+
+ /**
+ * The CCD commitment resource OCID.
+ *
+ * @return the value
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * The hourly quantity that the customer is committing to a CCD offer's main SKU. For example,
+ * if the quantity is 1000, then you are committing to a 1000 usage quantity value per hour.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("quantity")
+ private final Long quantity;
+
+ /**
+ * The hourly quantity that the customer is committing to a CCD offer's main SKU. For example,
+ * if the quantity is 1000, then you are committing to a 1000 usage quantity value per hour.
+ *
+ * @return the value
+ */
+ public Long getQuantity() {
+ return quantity;
+ }
+
+ /** The CCD offer OCID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("offerId")
+ private final String offerId;
+
+ /**
+ * The CCD offer OCID.
+ *
+ * @return the value
+ */
+ public String getOfferId() {
+ return offerId;
+ }
+
+ /** The commercial workflow of the associated CCD offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceType")
+ private final CcdOffer.SourceType sourceType;
+
+ /**
+ * The commercial workflow of the associated CCD offer.
+ *
+ * @return the value
+ */
+ public CcdOffer.SourceType getSourceType() {
+ return sourceType;
+ }
+
+ /**
+ * The reclaim term copied from the offer when the commitment is created. The value is measured
+ * in {@code reclaimTermUnit}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTerm")
+ private final Long reclaimTerm;
+
+ /**
+ * The reclaim term copied from the offer when the commitment is created. The value is measured
+ * in {@code reclaimTermUnit}.
+ *
+ * @return the value
+ */
+ public Long getReclaimTerm() {
+ return reclaimTerm;
+ }
+
+ /**
+ * The unit used to measure {@code reclaimTerm}, copied from the offer when the commitment is
+ * created.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTermUnit")
+ private final CcdOffer.ReclaimTermUnit reclaimTermUnit;
+
+ /**
+ * The unit used to measure {@code reclaimTerm}, copied from the offer when the commitment is
+ * created.
+ *
+ * @return the value
+ */
+ public CcdOffer.ReclaimTermUnit getReclaimTermUnit() {
+ return reclaimTermUnit;
+ }
+
+ /**
+ * The CCD commitment name. The name will be unique across the subscription for which the CCD
+ * commitment has been created. Avoid entering confidential information.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * The CCD commitment name. The name will be unique across the subscription for which the CCD
+ * commitment has been created. Avoid entering confidential information.
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /**
+ * The date and time, rounded down to an hour, that the CCD commitment will be effective. The
+ * format conforms to RFC 3339.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdCommitmentStarts")
+ private final java.util.Date timeCcdCommitmentStarts;
+
+ /**
+ * The date and time, rounded down to an hour, that the CCD commitment will be effective. The
+ * format conforms to RFC 3339.
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCcdCommitmentStarts() {
+ return timeCcdCommitmentStarts;
+ }
+
+ /**
+ * The date and time the CCD commitment ends, which is calculated from the {@code
+ * timeCcdCommitmentStarts} of the {@code ccdCommitment}, the term, and {@code ccdOffer} units.
+ * The format must conform to RFC 3339.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdCommitmentEnds")
+ private final java.util.Date timeCcdCommitmentEnds;
+
+ /**
+ * The date and time the CCD commitment ends, which is calculated from the {@code
+ * timeCcdCommitmentStarts} of the {@code ccdCommitment}, the term, and {@code ccdOffer} units.
+ * The format must conform to RFC 3339.
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCcdCommitmentEnds() {
+ return timeCcdCommitmentEnds;
+ }
+
+ /** The subscription OCID the CCD commitment is applicable to. */
+ @com.fasterxml.jackson.annotation.JsonProperty("subscriptionId")
+ private final String subscriptionId;
+
+ /**
+ * The subscription OCID the CCD commitment is applicable to.
+ *
+ * @return the value
+ */
+ public String getSubscriptionId() {
+ return subscriptionId;
+ }
+
+ /** The root compartment ID associated with the CCD offer the customer has signed up for. */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private final String compartmentId;
+
+ /**
+ * The root compartment ID associated with the CCD offer the customer has signed up for.
+ *
+ * @return the value
+ */
+ public String getCompartmentId() {
+ return compartmentId;
+ }
+
+ /** The tenancy OCID that you want to apply filler usage to. */
+ @com.fasterxml.jackson.annotation.JsonProperty("fillerTenancyId")
+ private final String fillerTenancyId;
+
+ /**
+ * The tenancy OCID that you want to apply filler usage to.
+ *
+ * @return the value
+ */
+ public String getFillerTenancyId() {
+ return fillerTenancyId;
+ }
+
+ /** The filler tenancy home region. */
+ @com.fasterxml.jackson.annotation.JsonProperty("fillerTenancyHomeRegion")
+ private final String fillerTenancyHomeRegion;
+
+ /**
+ * The filler tenancy home region.
+ *
+ * @return the value
+ */
+ public String getFillerTenancyHomeRegion() {
+ return fillerTenancyHomeRegion;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("usageEligibility")
+ private final UsageEligibility usageEligibility;
+
+ public UsageEligibility getUsageEligibility() {
+ return usageEligibility;
+ }
+
+ /**
+ * The CCD commitment's current state, which always defaults to {@code Active}. For a more
+ * accurate detailed state, refer to {@code lifecycleDetails}.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private final CcdCommitment.LifecycleState lifecycleState;
+
+ /**
+ * The CCD commitment's current state, which always defaults to {@code Active}. For a more
+ * accurate detailed state, refer to {@code lifecycleDetails}.
+ *
+ * @return the value
+ */
+ public CcdCommitment.LifecycleState getLifecycleState() {
+ return lifecycleState;
+ }
+
+ /**
+ * The CCD commitment's current state. A commitment that's expected to get a dedicated capacity
+ * will be in the Awaiting Provisioning state unless the commitment is ended or canceled.
+ * Otherwise, the value is determined by {@code timeCcdCommitmentStarts}, {@code
+ * timeCcdCommitmentEnds}, and {@code timeTerminated}, with respect to the current time.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private final CcdCommitment.LifecycleDetails lifecycleDetails;
+
+ /**
+ * The CCD commitment's current state. A commitment that's expected to get a dedicated capacity
+ * will be in the Awaiting Provisioning state unless the commitment is ended or canceled.
+ * Otherwise, the value is determined by {@code timeCcdCommitmentStarts}, {@code
+ * timeCcdCommitmentEnds}, and {@code timeTerminated}, with respect to the current time.
+ *
+ * @return the value
+ */
+ public CcdCommitment.LifecycleDetails getLifecycleDetails() {
+ return lifecycleDetails;
+ }
+
+ /** The list of SKUs associated with the commitment and their prices in all currency codes. */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuQuantityPriceModel")
+ private final java.util.List skuQuantityPriceModel;
+
+ /**
+ * The list of SKUs associated with the commitment and their prices in all currency codes.
+ *
+ * @return the value
+ */
+ public java.util.List getSkuQuantityPriceModel() {
+ return skuQuantityPriceModel;
+ }
+
+ /** The secondary SKUs associated with the main SKU. */
+ @com.fasterxml.jackson.annotation.JsonProperty("secondarySkus")
+ private final java.util.List secondarySkus;
+
+ /**
+ * The secondary SKUs associated with the main SKU.
+ *
+ * @return the value
+ */
+ public java.util.List getSecondarySkus() {
+ return secondarySkus;
+ }
+
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private final java.util.Date timeCreated;
+
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCreated() {
+ return timeCreated;
+ }
+
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example: {@code
+ * 2025-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private final java.util.Date timeUpdated;
+
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example: {@code
+ * 2025-01-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeUpdated() {
+ return timeUpdated;
+ }
+
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeTerminated")
+ private final java.util.Date timeTerminated;
+
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeTerminated() {
+ return timeTerminated;
+ }
+
+ /**
+ * 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": {"free-tier-retained": "true"}}}
+ */
+ @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": {"free-tier-retained": "true"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map> getSystemTags() {
+ return systemTags;
+ }
+
+ /** Entity/User who lastly updated the ccdCommitment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lastUpdatedBy")
+ private final String lastUpdatedBy;
+
+ /**
+ * Entity/User who lastly updated the ccdCommitment.
+ *
+ * @return the value
+ */
+ public String getLastUpdatedBy() {
+ return lastUpdatedBy;
+ }
+
+ /** The entity that created the CCD commitment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("createdBy")
+ private final String createdBy;
+
+ /**
+ * The entity that created the CCD commitment.
+ *
+ * @return the value
+ */
+ public String getCreatedBy() {
+ return createdBy;
+ }
+
+ /** Entity/User who approved the ccdCommitment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("approvedBy")
+ private final String approvedBy;
+
+ /**
+ * Entity/User who approved the ccdCommitment.
+ *
+ * @return the value
+ */
+ public String getApprovedBy() {
+ return approvedBy;
+ }
+
+ @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("CcdCommitmentSummary(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", quantity=").append(String.valueOf(this.quantity));
+ sb.append(", offerId=").append(String.valueOf(this.offerId));
+ sb.append(", sourceType=").append(String.valueOf(this.sourceType));
+ sb.append(", reclaimTerm=").append(String.valueOf(this.reclaimTerm));
+ sb.append(", reclaimTermUnit=").append(String.valueOf(this.reclaimTermUnit));
+ sb.append(", displayName=").append(String.valueOf(this.displayName));
+ sb.append(", timeCcdCommitmentStarts=")
+ .append(String.valueOf(this.timeCcdCommitmentStarts));
+ sb.append(", timeCcdCommitmentEnds=").append(String.valueOf(this.timeCcdCommitmentEnds));
+ sb.append(", subscriptionId=").append(String.valueOf(this.subscriptionId));
+ sb.append(", compartmentId=").append(String.valueOf(this.compartmentId));
+ sb.append(", fillerTenancyId=").append(String.valueOf(this.fillerTenancyId));
+ sb.append(", fillerTenancyHomeRegion=")
+ .append(String.valueOf(this.fillerTenancyHomeRegion));
+ sb.append(", usageEligibility=").append(String.valueOf(this.usageEligibility));
+ sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState));
+ sb.append(", lifecycleDetails=").append(String.valueOf(this.lifecycleDetails));
+ sb.append(", skuQuantityPriceModel=").append(String.valueOf(this.skuQuantityPriceModel));
+ sb.append(", secondarySkus=").append(String.valueOf(this.secondarySkus));
+ sb.append(", timeCreated=").append(String.valueOf(this.timeCreated));
+ sb.append(", timeUpdated=").append(String.valueOf(this.timeUpdated));
+ sb.append(", timeTerminated=").append(String.valueOf(this.timeTerminated));
+ 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(", lastUpdatedBy=").append(String.valueOf(this.lastUpdatedBy));
+ sb.append(", createdBy=").append(String.valueOf(this.createdBy));
+ sb.append(", approvedBy=").append(String.valueOf(this.approvedBy));
+ sb.append(")");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof CcdCommitmentSummary)) {
+ return false;
+ }
+
+ CcdCommitmentSummary other = (CcdCommitmentSummary) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.quantity, other.quantity)
+ && java.util.Objects.equals(this.offerId, other.offerId)
+ && java.util.Objects.equals(this.sourceType, other.sourceType)
+ && java.util.Objects.equals(this.reclaimTerm, other.reclaimTerm)
+ && java.util.Objects.equals(this.reclaimTermUnit, other.reclaimTermUnit)
+ && java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(
+ this.timeCcdCommitmentStarts, other.timeCcdCommitmentStarts)
+ && java.util.Objects.equals(this.timeCcdCommitmentEnds, other.timeCcdCommitmentEnds)
+ && java.util.Objects.equals(this.subscriptionId, other.subscriptionId)
+ && java.util.Objects.equals(this.compartmentId, other.compartmentId)
+ && java.util.Objects.equals(this.fillerTenancyId, other.fillerTenancyId)
+ && java.util.Objects.equals(
+ this.fillerTenancyHomeRegion, other.fillerTenancyHomeRegion)
+ && java.util.Objects.equals(this.usageEligibility, other.usageEligibility)
+ && java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
+ && java.util.Objects.equals(this.lifecycleDetails, other.lifecycleDetails)
+ && java.util.Objects.equals(this.skuQuantityPriceModel, other.skuQuantityPriceModel)
+ && java.util.Objects.equals(this.secondarySkus, other.secondarySkus)
+ && java.util.Objects.equals(this.timeCreated, other.timeCreated)
+ && java.util.Objects.equals(this.timeUpdated, other.timeUpdated)
+ && java.util.Objects.equals(this.timeTerminated, other.timeTerminated)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && java.util.Objects.equals(this.systemTags, other.systemTags)
+ && java.util.Objects.equals(this.lastUpdatedBy, other.lastUpdatedBy)
+ && java.util.Objects.equals(this.createdBy, other.createdBy)
+ && java.util.Objects.equals(this.approvedBy, other.approvedBy)
+ && 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.quantity == null ? 43 : this.quantity.hashCode());
+ result = (result * PRIME) + (this.offerId == null ? 43 : this.offerId.hashCode());
+ result = (result * PRIME) + (this.sourceType == null ? 43 : this.sourceType.hashCode());
+ result = (result * PRIME) + (this.reclaimTerm == null ? 43 : this.reclaimTerm.hashCode());
+ result =
+ (result * PRIME)
+ + (this.reclaimTermUnit == null ? 43 : this.reclaimTermUnit.hashCode());
+ result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
+ result =
+ (result * PRIME)
+ + (this.timeCcdCommitmentStarts == null
+ ? 43
+ : this.timeCcdCommitmentStarts.hashCode());
+ result =
+ (result * PRIME)
+ + (this.timeCcdCommitmentEnds == null
+ ? 43
+ : this.timeCcdCommitmentEnds.hashCode());
+ result =
+ (result * PRIME)
+ + (this.subscriptionId == null ? 43 : this.subscriptionId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.compartmentId == null ? 43 : this.compartmentId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.fillerTenancyId == null ? 43 : this.fillerTenancyId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.fillerTenancyHomeRegion == null
+ ? 43
+ : this.fillerTenancyHomeRegion.hashCode());
+ result =
+ (result * PRIME)
+ + (this.usageEligibility == null ? 43 : this.usageEligibility.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.skuQuantityPriceModel == null
+ ? 43
+ : this.skuQuantityPriceModel.hashCode());
+ result =
+ (result * PRIME)
+ + (this.secondarySkus == null ? 43 : this.secondarySkus.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.timeTerminated == null ? 43 : this.timeTerminated.hashCode());
+ result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
+ result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
+ result = (result * PRIME) + (this.systemTags == null ? 43 : this.systemTags.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lastUpdatedBy == null ? 43 : this.lastUpdatedBy.hashCode());
+ result = (result * PRIME) + (this.createdBy == null ? 43 : this.createdBy.hashCode());
+ result = (result * PRIME) + (this.approvedBy == null ? 43 : this.approvedBy.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdOffer.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdOffer.java
new file mode 100644
index 00000000000..3b5c2e53a39
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdOffer.java
@@ -0,0 +1,2053 @@
+/**
+ * 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.ccdoffers.model;
+
+/**
+ * The created CCD offer details.
+ * 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: 20240601")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = CcdOffer.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CcdOffer extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "displayName",
+ "typeOfOffer",
+ "sourceType",
+ "reclaimTerm",
+ "reclaimTermUnit",
+ "lastUpdatedBy",
+ "createdBy",
+ "orderDocumentNumber",
+ "customerSegment",
+ "isFillerUsageEnable",
+ "reportingRegion",
+ "sku",
+ "skuDisplayName",
+ "skuMetric",
+ "minQuantity",
+ "maxQuantity",
+ "term",
+ "unit",
+ "discountPct",
+ "externalPriceOfSku",
+ "offerRestriction",
+ "bundleSkus",
+ "lifecycleState",
+ "lifecycleDetails",
+ "timeCreated",
+ "timeTerminated",
+ "timeUpdated",
+ "freeformTags",
+ "definedTags",
+ "systemTags",
+ "timeCcdOfferStarts",
+ "timeCcdOfferEnds",
+ "currencyCode",
+ "listPrice",
+ "subscriptionId",
+ "compartmentId"
+ })
+ public CcdOffer(
+ String id,
+ String displayName,
+ TypeOfOffer typeOfOffer,
+ SourceType sourceType,
+ Long reclaimTerm,
+ ReclaimTermUnit reclaimTermUnit,
+ String lastUpdatedBy,
+ String createdBy,
+ String orderDocumentNumber,
+ CustomerSegment customerSegment,
+ Boolean isFillerUsageEnable,
+ String reportingRegion,
+ String sku,
+ String skuDisplayName,
+ String skuMetric,
+ Long minQuantity,
+ Long maxQuantity,
+ Integer term,
+ Unit unit,
+ String discountPct,
+ java.util.List externalPriceOfSku,
+ OfferRestriction offerRestriction,
+ java.util.List bundleSkus,
+ LifecycleState lifecycleState,
+ LifecycleDetails lifecycleDetails,
+ java.util.Date timeCreated,
+ java.util.Date timeTerminated,
+ java.util.Date timeUpdated,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ java.util.Map> systemTags,
+ java.util.Date timeCcdOfferStarts,
+ java.util.Date timeCcdOfferEnds,
+ String currencyCode,
+ String listPrice,
+ String subscriptionId,
+ String compartmentId) {
+ super();
+ this.id = id;
+ this.displayName = displayName;
+ this.typeOfOffer = typeOfOffer;
+ this.sourceType = sourceType;
+ this.reclaimTerm = reclaimTerm;
+ this.reclaimTermUnit = reclaimTermUnit;
+ this.lastUpdatedBy = lastUpdatedBy;
+ this.createdBy = createdBy;
+ this.orderDocumentNumber = orderDocumentNumber;
+ this.customerSegment = customerSegment;
+ this.isFillerUsageEnable = isFillerUsageEnable;
+ this.reportingRegion = reportingRegion;
+ this.sku = sku;
+ this.skuDisplayName = skuDisplayName;
+ this.skuMetric = skuMetric;
+ this.minQuantity = minQuantity;
+ this.maxQuantity = maxQuantity;
+ this.term = term;
+ this.unit = unit;
+ this.discountPct = discountPct;
+ this.externalPriceOfSku = externalPriceOfSku;
+ this.offerRestriction = offerRestriction;
+ this.bundleSkus = bundleSkus;
+ this.lifecycleState = lifecycleState;
+ this.lifecycleDetails = lifecycleDetails;
+ this.timeCreated = timeCreated;
+ this.timeTerminated = timeTerminated;
+ this.timeUpdated = timeUpdated;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.systemTags = systemTags;
+ this.timeCcdOfferStarts = timeCcdOfferStarts;
+ this.timeCcdOfferEnds = timeCcdOfferEnds;
+ this.currencyCode = currencyCode;
+ this.listPrice = listPrice;
+ this.subscriptionId = subscriptionId;
+ this.compartmentId = compartmentId;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The CCD offer OCID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * The CCD offer OCID.
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /** The CCD offer name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * The CCD offer name.
+ *
+ * @param displayName the value to set
+ * @return this builder
+ */
+ public Builder displayName(String displayName) {
+ this.displayName = displayName;
+ this.__explicitlySet__.add("displayName");
+ return this;
+ }
+ /** The CCD offer type. */
+ @com.fasterxml.jackson.annotation.JsonProperty("typeOfOffer")
+ private TypeOfOffer typeOfOffer;
+
+ /**
+ * The CCD offer type.
+ *
+ * @param typeOfOffer the value to set
+ * @return this builder
+ */
+ public Builder typeOfOffer(TypeOfOffer typeOfOffer) {
+ this.typeOfOffer = typeOfOffer;
+ this.__explicitlySet__.add("typeOfOffer");
+ return this;
+ }
+ /**
+ * The commercial workflow that created the CCD offer/commitment. This value is immutable.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceType")
+ private SourceType sourceType;
+
+ /**
+ * The commercial workflow that created the CCD offer/commitment. This value is immutable.
+ *
+ * @param sourceType the value to set
+ * @return this builder
+ */
+ public Builder sourceType(SourceType sourceType) {
+ this.sourceType = sourceType;
+ this.__explicitlySet__.add("sourceType");
+ return this;
+ }
+ /** The reclaim term for an offer, measured in {@code reclaimTermUnit}. */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTerm")
+ private Long reclaimTerm;
+
+ /**
+ * The reclaim term for an offer, measured in {@code reclaimTermUnit}.
+ *
+ * @param reclaimTerm the value to set
+ * @return this builder
+ */
+ public Builder reclaimTerm(Long reclaimTerm) {
+ this.reclaimTerm = reclaimTerm;
+ this.__explicitlySet__.add("reclaimTerm");
+ return this;
+ }
+ /** The unit used to measure {@code reclaimTerm}. */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTermUnit")
+ private ReclaimTermUnit reclaimTermUnit;
+
+ /**
+ * The unit used to measure {@code reclaimTerm}.
+ *
+ * @param reclaimTermUnit the value to set
+ * @return this builder
+ */
+ public Builder reclaimTermUnit(ReclaimTermUnit reclaimTermUnit) {
+ this.reclaimTermUnit = reclaimTermUnit;
+ this.__explicitlySet__.add("reclaimTermUnit");
+ return this;
+ }
+ /** Entity/User who lastly updated the ccdOffer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lastUpdatedBy")
+ private String lastUpdatedBy;
+
+ /**
+ * Entity/User who lastly updated the ccdOffer.
+ *
+ * @param lastUpdatedBy the value to set
+ * @return this builder
+ */
+ public Builder lastUpdatedBy(String lastUpdatedBy) {
+ this.lastUpdatedBy = lastUpdatedBy;
+ this.__explicitlySet__.add("lastUpdatedBy");
+ return this;
+ }
+ /** Entity/User who created the ccdOffer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("createdBy")
+ private String createdBy;
+
+ /**
+ * Entity/User who created the ccdOffer.
+ *
+ * @param createdBy the value to set
+ * @return this builder
+ */
+ public Builder createdBy(String createdBy) {
+ this.createdBy = createdBy;
+ this.__explicitlySet__.add("createdBy");
+ return this;
+ }
+ /** Sales order document number. */
+ @com.fasterxml.jackson.annotation.JsonProperty("orderDocumentNumber")
+ private String orderDocumentNumber;
+
+ /**
+ * Sales order document number.
+ *
+ * @param orderDocumentNumber the value to set
+ * @return this builder
+ */
+ public Builder orderDocumentNumber(String orderDocumentNumber) {
+ this.orderDocumentNumber = orderDocumentNumber;
+ this.__explicitlySet__.add("orderDocumentNumber");
+ return this;
+ }
+ /** The targeted customer segment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("customerSegment")
+ private CustomerSegment customerSegment;
+
+ /**
+ * The targeted customer segment.
+ *
+ * @param customerSegment the value to set
+ * @return this builder
+ */
+ public Builder customerSegment(CustomerSegment customerSegment) {
+ this.customerSegment = customerSegment;
+ this.__explicitlySet__.add("customerSegment");
+ return this;
+ }
+ /**
+ * Enable or disable filler usage if the customer usage quantity is below the minimum
+ * quantity, and you want metering to fill in usages to meet the minimum quantity.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("isFillerUsageEnable")
+ private Boolean isFillerUsageEnable;
+
+ /**
+ * Enable or disable filler usage if the customer usage quantity is below the minimum
+ * quantity, and you want metering to fill in usages to meet the minimum quantity.
+ *
+ * @param isFillerUsageEnable the value to set
+ * @return this builder
+ */
+ public Builder isFillerUsageEnable(Boolean isFillerUsageEnable) {
+ this.isFillerUsageEnable = isFillerUsageEnable;
+ this.__explicitlySet__.add("isFillerUsageEnable");
+ return this;
+ }
+ /** Defines where the filler usage is reported */
+ @com.fasterxml.jackson.annotation.JsonProperty("reportingRegion")
+ private String reportingRegion;
+
+ /**
+ * Defines where the filler usage is reported
+ *
+ * @param reportingRegion the value to set
+ * @return this builder
+ */
+ public Builder reportingRegion(String reportingRegion) {
+ this.reportingRegion = reportingRegion;
+ this.__explicitlySet__.add("reportingRegion");
+ return this;
+ }
+ /** The SKU part number (prefaced with "B") the CCD is associated with. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sku")
+ private String sku;
+
+ /**
+ * The SKU part number (prefaced with "B") the CCD is associated with.
+ *
+ * @param sku the value to set
+ * @return this builder
+ */
+ public Builder sku(String sku) {
+ this.sku = sku;
+ this.__explicitlySet__.add("sku");
+ return this;
+ }
+ /** The canonical SKU display name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuDisplayName")
+ private String skuDisplayName;
+
+ /**
+ * The canonical SKU display name.
+ *
+ * @param skuDisplayName the value to set
+ * @return this builder
+ */
+ public Builder skuDisplayName(String skuDisplayName) {
+ this.skuDisplayName = skuDisplayName;
+ this.__explicitlySet__.add("skuDisplayName");
+ return this;
+ }
+ /** The canonical billing metric. */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuMetric")
+ private String skuMetric;
+
+ /**
+ * The canonical billing metric.
+ *
+ * @param skuMetric the value to set
+ * @return this builder
+ */
+ public Builder skuMetric(String skuMetric) {
+ this.skuMetric = skuMetric;
+ this.__explicitlySet__.add("skuMetric");
+ return this;
+ }
+ /**
+ * The minimum quantity of the primary SKU committed to the CCD offer. For FLEX offers,
+ * minQuantity and maxQuantity must both be equal if maxQuantity provided.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minQuantity")
+ private Long minQuantity;
+
+ /**
+ * The minimum quantity of the primary SKU committed to the CCD offer. For FLEX offers,
+ * minQuantity and maxQuantity must both be equal if maxQuantity provided.
+ *
+ * @param minQuantity the value to set
+ * @return this builder
+ */
+ public Builder minQuantity(Long minQuantity) {
+ this.minQuantity = minQuantity;
+ this.__explicitlySet__.add("minQuantity");
+ return this;
+ }
+ /**
+ * The maximum quantity of the primary SKU committed to the CCD offer. For FLEX offers if
+ * provided, it must equal minQuantity.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("maxQuantity")
+ private Long maxQuantity;
+
+ /**
+ * The maximum quantity of the primary SKU committed to the CCD offer. For FLEX offers if
+ * provided, it must equal minQuantity.
+ *
+ * @param maxQuantity the value to set
+ * @return this builder
+ */
+ public Builder maxQuantity(Long maxQuantity) {
+ this.maxQuantity = maxQuantity;
+ this.__explicitlySet__.add("maxQuantity");
+ return this;
+ }
+ /** The number of terms the offer is applicable to. */
+ @com.fasterxml.jackson.annotation.JsonProperty("term")
+ private Integer term;
+
+ /**
+ * The number of terms the offer is applicable to.
+ *
+ * @param term the value to set
+ * @return this builder
+ */
+ public Builder term(Integer term) {
+ this.term = term;
+ this.__explicitlySet__.add("term");
+ return this;
+ }
+ /** The term units. */
+ @com.fasterxml.jackson.annotation.JsonProperty("unit")
+ private Unit unit;
+
+ /**
+ * The term units.
+ *
+ * @param unit the value to set
+ * @return this builder
+ */
+ public Builder unit(Unit unit) {
+ this.unit = unit;
+ this.__explicitlySet__.add("unit");
+ return this;
+ }
+ /**
+ * The discount percentage applicable to the CCD offer, represented as a decimal string from
+ * 0 through 100 inclusive.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("discountPct")
+ private String discountPct;
+
+ /**
+ * The discount percentage applicable to the CCD offer, represented as a decimal string from
+ * 0 through 100 inclusive.
+ *
+ * @param discountPct the value to set
+ * @return this builder
+ */
+ public Builder discountPct(String discountPct) {
+ this.discountPct = discountPct;
+ this.__explicitlySet__.add("discountPct");
+ return this;
+ }
+ /** The SKU list price in all currency codes. */
+ @com.fasterxml.jackson.annotation.JsonProperty("externalPriceOfSku")
+ private java.util.List externalPriceOfSku;
+
+ /**
+ * The SKU list price in all currency codes.
+ *
+ * @param externalPriceOfSku the value to set
+ * @return this builder
+ */
+ public Builder externalPriceOfSku(
+ java.util.List externalPriceOfSku) {
+ this.externalPriceOfSku = externalPriceOfSku;
+ this.__explicitlySet__.add("externalPriceOfSku");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("offerRestriction")
+ private OfferRestriction offerRestriction;
+
+ public Builder offerRestriction(OfferRestriction offerRestriction) {
+ this.offerRestriction = offerRestriction;
+ this.__explicitlySet__.add("offerRestriction");
+ return this;
+ }
+ /**
+ * The polymorphic bundled SKU definitions. Every bundled SKU in an offer must use the same
+ * {@code quantityRule}; don't mix {@code FIXED_RATIO} and {@code CUSTOMER_SELECTED} bundled
+ * SKUs in one offer. An offer can contain at most five SKUs in total, including the primary
+ * SKU.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("bundleSkus")
+ private java.util.List bundleSkus;
+
+ /**
+ * The polymorphic bundled SKU definitions. Every bundled SKU in an offer must use the same
+ * {@code quantityRule}; don't mix {@code FIXED_RATIO} and {@code CUSTOMER_SELECTED} bundled
+ * SKUs in one offer. An offer can contain at most five SKUs in total, including the primary
+ * SKU.
+ *
+ * @param bundleSkus the value to set
+ * @return this builder
+ */
+ public Builder bundleSkus(java.util.List bundleSkus) {
+ this.bundleSkus = bundleSkus;
+ this.__explicitlySet__.add("bundleSkus");
+ return this;
+ }
+ /**
+ * Always defaults to {@code Active}. For the accurate resource state, refer to the {@code
+ * lifecycleDetails} property value.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private LifecycleState lifecycleState;
+
+ /**
+ * Always defaults to {@code Active}. For the accurate resource state, refer to the {@code
+ * lifecycleDetails} property value.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder
+ */
+ public Builder lifecycleState(LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ this.__explicitlySet__.add("lifecycleState");
+ return this;
+ }
+ /**
+ * The CCD offer's detailed current state. The state value is determined by {@code
+ * timeCcdOfferStarts}, {@code timeCcdOfferEnds}, and {@code timeTerminated} with respect to
+ * the current time.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private LifecycleDetails lifecycleDetails;
+
+ /**
+ * The CCD offer's detailed current state. The state value is determined by {@code
+ * timeCcdOfferStarts}, {@code timeCcdOfferEnds}, and {@code timeTerminated} with respect to
+ * the current time.
+ *
+ * @param lifecycleDetails the value to set
+ * @return this builder
+ */
+ public Builder lifecycleDetails(LifecycleDetails lifecycleDetails) {
+ this.lifecycleDetails = lifecycleDetails;
+ this.__explicitlySet__.add("lifecycleDetails");
+ return this;
+ }
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private java.util.Date timeCreated;
+
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-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;
+ }
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeTerminated")
+ private java.util.Date timeTerminated;
+
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ *
+ * @param timeTerminated the value to set
+ * @return this builder
+ */
+ public Builder timeTerminated(java.util.Date timeTerminated) {
+ this.timeTerminated = timeTerminated;
+ this.__explicitlySet__.add("timeTerminated");
+ return this;
+ }
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example:
+ * {@code 2025-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private java.util.Date timeUpdated;
+
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example:
+ * {@code 2025-01-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;
+ }
+ /**
+ * 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": {"free-tier-retained": "true"}}}
+ */
+ @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": {"free-tier-retained": "true"}}}
+ *
+ * @param systemTags the value to set
+ * @return this builder
+ */
+ public Builder systemTags(java.util.Map> systemTags) {
+ this.systemTags = systemTags;
+ this.__explicitlySet__.add("systemTags");
+ return this;
+ }
+ /**
+ * The inclusive date the CCD offer will be effective. The format is defined by RFC 3339.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdOfferStarts")
+ private java.util.Date timeCcdOfferStarts;
+
+ /**
+ * The inclusive date the CCD offer will be effective. The format is defined by RFC 3339.
+ *
+ * @param timeCcdOfferStarts the value to set
+ * @return this builder
+ */
+ public Builder timeCcdOfferStarts(java.util.Date timeCcdOfferStarts) {
+ this.timeCcdOfferStarts = timeCcdOfferStarts;
+ this.__explicitlySet__.add("timeCcdOfferStarts");
+ return this;
+ }
+ /**
+ * The inclusive time when the CCD offer is no longer in effect, and must be after {@code
+ * timeCcdOfferStarts}. The format is defined by RFC 3339.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdOfferEnds")
+ private java.util.Date timeCcdOfferEnds;
+
+ /**
+ * The inclusive time when the CCD offer is no longer in effect, and must be after {@code
+ * timeCcdOfferStarts}. The format is defined by RFC 3339.
+ *
+ * @param timeCcdOfferEnds the value to set
+ * @return this builder
+ */
+ public Builder timeCcdOfferEnds(java.util.Date timeCcdOfferEnds) {
+ this.timeCcdOfferEnds = timeCcdOfferEnds;
+ this.__explicitlySet__.add("timeCcdOfferEnds");
+ return this;
+ }
+ /**
+ * Currency code of listPrice associated with primary product/sku. This will be always null.
+ * Please refer {@code externalPriceOfSku} to know product/sku's associated list price in
+ * its currency code.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("currencyCode")
+ private String currencyCode;
+
+ /**
+ * Currency code of listPrice associated with primary product/sku. This will be always null.
+ * Please refer {@code externalPriceOfSku} to know product/sku's associated list price in
+ * its currency code.
+ *
+ * @param currencyCode the value to set
+ * @return this builder
+ */
+ public Builder currencyCode(String currencyCode) {
+ this.currencyCode = currencyCode;
+ this.__explicitlySet__.add("currencyCode");
+ return this;
+ }
+ /**
+ * ListPrice of a sku. Please refer {@code externalPriceOfSku} to know product/sku's
+ * associated list price in its currency code.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("listPrice")
+ private String listPrice;
+
+ /**
+ * ListPrice of a sku. Please refer {@code externalPriceOfSku} to know product/sku's
+ * associated list price in its currency code.
+ *
+ * @param listPrice the value to set
+ * @return this builder
+ */
+ public Builder listPrice(String listPrice) {
+ this.listPrice = listPrice;
+ this.__explicitlySet__.add("listPrice");
+ return this;
+ }
+ /** The subscription OCID if a this is dedicated CCD offer for a customer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("subscriptionId")
+ private String subscriptionId;
+
+ /**
+ * The subscription OCID if a this is dedicated CCD offer for a customer.
+ *
+ * @param subscriptionId the value to set
+ * @return this builder
+ */
+ public Builder subscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ this.__explicitlySet__.add("subscriptionId");
+ return this;
+ }
+ /**
+ * The root compartment OCID of the customer's tenancy if offer is dedicated to a particular
+ * customer only.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private String compartmentId;
+
+ /**
+ * The root compartment OCID of the customer's tenancy if offer is dedicated to a particular
+ * customer only.
+ *
+ * @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 CcdOffer build() {
+ CcdOffer model =
+ new CcdOffer(
+ this.id,
+ this.displayName,
+ this.typeOfOffer,
+ this.sourceType,
+ this.reclaimTerm,
+ this.reclaimTermUnit,
+ this.lastUpdatedBy,
+ this.createdBy,
+ this.orderDocumentNumber,
+ this.customerSegment,
+ this.isFillerUsageEnable,
+ this.reportingRegion,
+ this.sku,
+ this.skuDisplayName,
+ this.skuMetric,
+ this.minQuantity,
+ this.maxQuantity,
+ this.term,
+ this.unit,
+ this.discountPct,
+ this.externalPriceOfSku,
+ this.offerRestriction,
+ this.bundleSkus,
+ this.lifecycleState,
+ this.lifecycleDetails,
+ this.timeCreated,
+ this.timeTerminated,
+ this.timeUpdated,
+ this.freeformTags,
+ this.definedTags,
+ this.systemTags,
+ this.timeCcdOfferStarts,
+ this.timeCcdOfferEnds,
+ this.currencyCode,
+ this.listPrice,
+ this.subscriptionId,
+ this.compartmentId);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CcdOffer model) {
+ if (model.wasPropertyExplicitlySet("id")) {
+ this.id(model.getId());
+ }
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("typeOfOffer")) {
+ this.typeOfOffer(model.getTypeOfOffer());
+ }
+ if (model.wasPropertyExplicitlySet("sourceType")) {
+ this.sourceType(model.getSourceType());
+ }
+ if (model.wasPropertyExplicitlySet("reclaimTerm")) {
+ this.reclaimTerm(model.getReclaimTerm());
+ }
+ if (model.wasPropertyExplicitlySet("reclaimTermUnit")) {
+ this.reclaimTermUnit(model.getReclaimTermUnit());
+ }
+ if (model.wasPropertyExplicitlySet("lastUpdatedBy")) {
+ this.lastUpdatedBy(model.getLastUpdatedBy());
+ }
+ if (model.wasPropertyExplicitlySet("createdBy")) {
+ this.createdBy(model.getCreatedBy());
+ }
+ if (model.wasPropertyExplicitlySet("orderDocumentNumber")) {
+ this.orderDocumentNumber(model.getOrderDocumentNumber());
+ }
+ if (model.wasPropertyExplicitlySet("customerSegment")) {
+ this.customerSegment(model.getCustomerSegment());
+ }
+ if (model.wasPropertyExplicitlySet("isFillerUsageEnable")) {
+ this.isFillerUsageEnable(model.getIsFillerUsageEnable());
+ }
+ if (model.wasPropertyExplicitlySet("reportingRegion")) {
+ this.reportingRegion(model.getReportingRegion());
+ }
+ if (model.wasPropertyExplicitlySet("sku")) {
+ this.sku(model.getSku());
+ }
+ if (model.wasPropertyExplicitlySet("skuDisplayName")) {
+ this.skuDisplayName(model.getSkuDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("skuMetric")) {
+ this.skuMetric(model.getSkuMetric());
+ }
+ if (model.wasPropertyExplicitlySet("minQuantity")) {
+ this.minQuantity(model.getMinQuantity());
+ }
+ if (model.wasPropertyExplicitlySet("maxQuantity")) {
+ this.maxQuantity(model.getMaxQuantity());
+ }
+ if (model.wasPropertyExplicitlySet("term")) {
+ this.term(model.getTerm());
+ }
+ if (model.wasPropertyExplicitlySet("unit")) {
+ this.unit(model.getUnit());
+ }
+ if (model.wasPropertyExplicitlySet("discountPct")) {
+ this.discountPct(model.getDiscountPct());
+ }
+ if (model.wasPropertyExplicitlySet("externalPriceOfSku")) {
+ this.externalPriceOfSku(model.getExternalPriceOfSku());
+ }
+ if (model.wasPropertyExplicitlySet("offerRestriction")) {
+ this.offerRestriction(model.getOfferRestriction());
+ }
+ if (model.wasPropertyExplicitlySet("bundleSkus")) {
+ this.bundleSkus(model.getBundleSkus());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleState")) {
+ this.lifecycleState(model.getLifecycleState());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleDetails")) {
+ this.lifecycleDetails(model.getLifecycleDetails());
+ }
+ if (model.wasPropertyExplicitlySet("timeCreated")) {
+ this.timeCreated(model.getTimeCreated());
+ }
+ if (model.wasPropertyExplicitlySet("timeTerminated")) {
+ this.timeTerminated(model.getTimeTerminated());
+ }
+ if (model.wasPropertyExplicitlySet("timeUpdated")) {
+ this.timeUpdated(model.getTimeUpdated());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ if (model.wasPropertyExplicitlySet("systemTags")) {
+ this.systemTags(model.getSystemTags());
+ }
+ if (model.wasPropertyExplicitlySet("timeCcdOfferStarts")) {
+ this.timeCcdOfferStarts(model.getTimeCcdOfferStarts());
+ }
+ if (model.wasPropertyExplicitlySet("timeCcdOfferEnds")) {
+ this.timeCcdOfferEnds(model.getTimeCcdOfferEnds());
+ }
+ if (model.wasPropertyExplicitlySet("currencyCode")) {
+ this.currencyCode(model.getCurrencyCode());
+ }
+ if (model.wasPropertyExplicitlySet("listPrice")) {
+ this.listPrice(model.getListPrice());
+ }
+ if (model.wasPropertyExplicitlySet("subscriptionId")) {
+ this.subscriptionId(model.getSubscriptionId());
+ }
+ 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 CCD offer OCID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private final String id;
+
+ /**
+ * The CCD offer OCID.
+ *
+ * @return the value
+ */
+ public String getId() {
+ return id;
+ }
+
+ /** The CCD offer name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * The CCD offer name.
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /** The CCD offer type. */
+ public enum TypeOfOffer implements com.oracle.bmc.http.internal.BmcEnum {
+ Standard("STANDARD"),
+ Custom("CUSTOM"),
+ Private("PRIVATE"),
+ Contractual("CONTRACTUAL"),
+ Flex("FLEX"),
+
+ /**
+ * 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(TypeOfOffer.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (TypeOfOffer v : TypeOfOffer.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ TypeOfOffer(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static TypeOfOffer create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'TypeOfOffer', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The CCD offer type. */
+ @com.fasterxml.jackson.annotation.JsonProperty("typeOfOffer")
+ private final TypeOfOffer typeOfOffer;
+
+ /**
+ * The CCD offer type.
+ *
+ * @return the value
+ */
+ public TypeOfOffer getTypeOfOffer() {
+ return typeOfOffer;
+ }
+
+ /** The commercial workflow that created the CCD offer/commitment. This value is immutable. */
+ public enum SourceType implements com.oracle.bmc.http.internal.BmcEnum {
+ ContractCommitment("CONTRACT_COMMITMENT"),
+ ContractOffer("CONTRACT_OFFER"),
+ Flex("FLEX"),
+ OciGenerated("OCI_GENERATED"),
+
+ /**
+ * 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(SourceType.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (SourceType v : SourceType.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ SourceType(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static SourceType create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'SourceType', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The commercial workflow that created the CCD offer/commitment. This value is immutable. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceType")
+ private final SourceType sourceType;
+
+ /**
+ * The commercial workflow that created the CCD offer/commitment. This value is immutable.
+ *
+ * @return the value
+ */
+ public SourceType getSourceType() {
+ return sourceType;
+ }
+
+ /** The reclaim term for an offer, measured in {@code reclaimTermUnit}. */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTerm")
+ private final Long reclaimTerm;
+
+ /**
+ * The reclaim term for an offer, measured in {@code reclaimTermUnit}.
+ *
+ * @return the value
+ */
+ public Long getReclaimTerm() {
+ return reclaimTerm;
+ }
+
+ /** The unit used to measure {@code reclaimTerm}. */
+ public enum ReclaimTermUnit implements com.oracle.bmc.http.internal.BmcEnum {
+ Days("DAYS"),
+
+ /**
+ * 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(ReclaimTermUnit.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (ReclaimTermUnit v : ReclaimTermUnit.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ ReclaimTermUnit(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static ReclaimTermUnit create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'ReclaimTermUnit', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The unit used to measure {@code reclaimTerm}. */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTermUnit")
+ private final ReclaimTermUnit reclaimTermUnit;
+
+ /**
+ * The unit used to measure {@code reclaimTerm}.
+ *
+ * @return the value
+ */
+ public ReclaimTermUnit getReclaimTermUnit() {
+ return reclaimTermUnit;
+ }
+
+ /** Entity/User who lastly updated the ccdOffer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lastUpdatedBy")
+ private final String lastUpdatedBy;
+
+ /**
+ * Entity/User who lastly updated the ccdOffer.
+ *
+ * @return the value
+ */
+ public String getLastUpdatedBy() {
+ return lastUpdatedBy;
+ }
+
+ /** Entity/User who created the ccdOffer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("createdBy")
+ private final String createdBy;
+
+ /**
+ * Entity/User who created the ccdOffer.
+ *
+ * @return the value
+ */
+ public String getCreatedBy() {
+ return createdBy;
+ }
+
+ /** Sales order document number. */
+ @com.fasterxml.jackson.annotation.JsonProperty("orderDocumentNumber")
+ private final String orderDocumentNumber;
+
+ /**
+ * Sales order document number.
+ *
+ * @return the value
+ */
+ public String getOrderDocumentNumber() {
+ return orderDocumentNumber;
+ }
+
+ /** The targeted customer segment. */
+ public enum CustomerSegment implements com.oracle.bmc.http.internal.BmcEnum {
+ Internal("INTERNAL"),
+ External("EXTERNAL"),
+
+ /**
+ * 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(CustomerSegment.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (CustomerSegment v : CustomerSegment.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ CustomerSegment(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static CustomerSegment create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'CustomerSegment', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The targeted customer segment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("customerSegment")
+ private final CustomerSegment customerSegment;
+
+ /**
+ * The targeted customer segment.
+ *
+ * @return the value
+ */
+ public CustomerSegment getCustomerSegment() {
+ return customerSegment;
+ }
+
+ /**
+ * Enable or disable filler usage if the customer usage quantity is below the minimum quantity,
+ * and you want metering to fill in usages to meet the minimum quantity.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("isFillerUsageEnable")
+ private final Boolean isFillerUsageEnable;
+
+ /**
+ * Enable or disable filler usage if the customer usage quantity is below the minimum quantity,
+ * and you want metering to fill in usages to meet the minimum quantity.
+ *
+ * @return the value
+ */
+ public Boolean getIsFillerUsageEnable() {
+ return isFillerUsageEnable;
+ }
+
+ /** Defines where the filler usage is reported */
+ @com.fasterxml.jackson.annotation.JsonProperty("reportingRegion")
+ private final String reportingRegion;
+
+ /**
+ * Defines where the filler usage is reported
+ *
+ * @return the value
+ */
+ public String getReportingRegion() {
+ return reportingRegion;
+ }
+
+ /** The SKU part number (prefaced with "B") the CCD is associated with. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sku")
+ private final String sku;
+
+ /**
+ * The SKU part number (prefaced with "B") the CCD is associated with.
+ *
+ * @return the value
+ */
+ public String getSku() {
+ return sku;
+ }
+
+ /** The canonical SKU display name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuDisplayName")
+ private final String skuDisplayName;
+
+ /**
+ * The canonical SKU display name.
+ *
+ * @return the value
+ */
+ public String getSkuDisplayName() {
+ return skuDisplayName;
+ }
+
+ /** The canonical billing metric. */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuMetric")
+ private final String skuMetric;
+
+ /**
+ * The canonical billing metric.
+ *
+ * @return the value
+ */
+ public String getSkuMetric() {
+ return skuMetric;
+ }
+
+ /**
+ * The minimum quantity of the primary SKU committed to the CCD offer. For FLEX offers,
+ * minQuantity and maxQuantity must both be equal if maxQuantity provided.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minQuantity")
+ private final Long minQuantity;
+
+ /**
+ * The minimum quantity of the primary SKU committed to the CCD offer. For FLEX offers,
+ * minQuantity and maxQuantity must both be equal if maxQuantity provided.
+ *
+ * @return the value
+ */
+ public Long getMinQuantity() {
+ return minQuantity;
+ }
+
+ /**
+ * The maximum quantity of the primary SKU committed to the CCD offer. For FLEX offers if
+ * provided, it must equal minQuantity.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("maxQuantity")
+ private final Long maxQuantity;
+
+ /**
+ * The maximum quantity of the primary SKU committed to the CCD offer. For FLEX offers if
+ * provided, it must equal minQuantity.
+ *
+ * @return the value
+ */
+ public Long getMaxQuantity() {
+ return maxQuantity;
+ }
+
+ /** The number of terms the offer is applicable to. */
+ @com.fasterxml.jackson.annotation.JsonProperty("term")
+ private final Integer term;
+
+ /**
+ * The number of terms the offer is applicable to.
+ *
+ * @return the value
+ */
+ public Integer getTerm() {
+ return term;
+ }
+
+ /** The term units. */
+ public enum Unit implements com.oracle.bmc.http.internal.BmcEnum {
+ Months("MONTHS"),
+ Years("YEARS"),
+ Days("DAYS"),
+ Hours("HOURS"),
+
+ /**
+ * 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(Unit.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (Unit v : Unit.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ Unit(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static Unit create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'Unit', returning UnknownEnumValue", key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The term units. */
+ @com.fasterxml.jackson.annotation.JsonProperty("unit")
+ private final Unit unit;
+
+ /**
+ * The term units.
+ *
+ * @return the value
+ */
+ public Unit getUnit() {
+ return unit;
+ }
+
+ /**
+ * The discount percentage applicable to the CCD offer, represented as a decimal string from 0
+ * through 100 inclusive.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("discountPct")
+ private final String discountPct;
+
+ /**
+ * The discount percentage applicable to the CCD offer, represented as a decimal string from 0
+ * through 100 inclusive.
+ *
+ * @return the value
+ */
+ public String getDiscountPct() {
+ return discountPct;
+ }
+
+ /** The SKU list price in all currency codes. */
+ @com.fasterxml.jackson.annotation.JsonProperty("externalPriceOfSku")
+ private final java.util.List externalPriceOfSku;
+
+ /**
+ * The SKU list price in all currency codes.
+ *
+ * @return the value
+ */
+ public java.util.List getExternalPriceOfSku() {
+ return externalPriceOfSku;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("offerRestriction")
+ private final OfferRestriction offerRestriction;
+
+ public OfferRestriction getOfferRestriction() {
+ return offerRestriction;
+ }
+
+ /**
+ * The polymorphic bundled SKU definitions. Every bundled SKU in an offer must use the same
+ * {@code quantityRule}; don't mix {@code FIXED_RATIO} and {@code CUSTOMER_SELECTED} bundled
+ * SKUs in one offer. An offer can contain at most five SKUs in total, including the primary
+ * SKU.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("bundleSkus")
+ private final java.util.List bundleSkus;
+
+ /**
+ * The polymorphic bundled SKU definitions. Every bundled SKU in an offer must use the same
+ * {@code quantityRule}; don't mix {@code FIXED_RATIO} and {@code CUSTOMER_SELECTED} bundled
+ * SKUs in one offer. An offer can contain at most five SKUs in total, including the primary
+ * SKU.
+ *
+ * @return the value
+ */
+ public java.util.List getBundleSkus() {
+ return bundleSkus;
+ }
+
+ /**
+ * Always defaults to {@code Active}. For the accurate resource state, refer to the {@code
+ * lifecycleDetails} property value.
+ */
+ public enum LifecycleState implements com.oracle.bmc.http.internal.BmcEnum {
+ Active("ACTIVE"),
+
+ /**
+ * 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;
+ }
+ };
+ /**
+ * Always defaults to {@code Active}. For the accurate resource state, refer to the {@code
+ * lifecycleDetails} property value.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private final LifecycleState lifecycleState;
+
+ /**
+ * Always defaults to {@code Active}. For the accurate resource state, refer to the {@code
+ * lifecycleDetails} property value.
+ *
+ * @return the value
+ */
+ public LifecycleState getLifecycleState() {
+ return lifecycleState;
+ }
+
+ /**
+ * The CCD offer's detailed current state. The state value is determined by {@code
+ * timeCcdOfferStarts}, {@code timeCcdOfferEnds}, and {@code timeTerminated} with respect to the
+ * current time.
+ */
+ public enum LifecycleDetails implements com.oracle.bmc.http.internal.BmcEnum {
+ Scheduled("SCHEDULED"),
+ Current("CURRENT"),
+ Canceled("CANCELED"),
+ Ended("ENDED"),
+
+ /**
+ * 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(LifecycleDetails.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (LifecycleDetails v : LifecycleDetails.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ LifecycleDetails(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static LifecycleDetails create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'LifecycleDetails', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /**
+ * The CCD offer's detailed current state. The state value is determined by {@code
+ * timeCcdOfferStarts}, {@code timeCcdOfferEnds}, and {@code timeTerminated} with respect to the
+ * current time.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private final LifecycleDetails lifecycleDetails;
+
+ /**
+ * The CCD offer's detailed current state. The state value is determined by {@code
+ * timeCcdOfferStarts}, {@code timeCcdOfferEnds}, and {@code timeTerminated} with respect to the
+ * current time.
+ *
+ * @return the value
+ */
+ public LifecycleDetails getLifecycleDetails() {
+ return lifecycleDetails;
+ }
+
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private final java.util.Date timeCreated;
+
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCreated() {
+ return timeCreated;
+ }
+
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeTerminated")
+ private final java.util.Date timeTerminated;
+
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeTerminated() {
+ return timeTerminated;
+ }
+
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example: {@code
+ * 2025-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private final java.util.Date timeUpdated;
+
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example: {@code
+ * 2025-01-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeUpdated() {
+ return timeUpdated;
+ }
+
+ /**
+ * 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": {"free-tier-retained": "true"}}}
+ */
+ @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": {"free-tier-retained": "true"}}}
+ *
+ * @return the value
+ */
+ public java.util.Map> getSystemTags() {
+ return systemTags;
+ }
+
+ /** The inclusive date the CCD offer will be effective. The format is defined by RFC 3339. */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdOfferStarts")
+ private final java.util.Date timeCcdOfferStarts;
+
+ /**
+ * The inclusive date the CCD offer will be effective. The format is defined by RFC 3339.
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCcdOfferStarts() {
+ return timeCcdOfferStarts;
+ }
+
+ /**
+ * The inclusive time when the CCD offer is no longer in effect, and must be after {@code
+ * timeCcdOfferStarts}. The format is defined by RFC 3339.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdOfferEnds")
+ private final java.util.Date timeCcdOfferEnds;
+
+ /**
+ * The inclusive time when the CCD offer is no longer in effect, and must be after {@code
+ * timeCcdOfferStarts}. The format is defined by RFC 3339.
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCcdOfferEnds() {
+ return timeCcdOfferEnds;
+ }
+
+ /**
+ * Currency code of listPrice associated with primary product/sku. This will be always null.
+ * Please refer {@code externalPriceOfSku} to know product/sku's associated list price in its
+ * currency code.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("currencyCode")
+ private final String currencyCode;
+
+ /**
+ * Currency code of listPrice associated with primary product/sku. This will be always null.
+ * Please refer {@code externalPriceOfSku} to know product/sku's associated list price in its
+ * currency code.
+ *
+ * @return the value
+ */
+ public String getCurrencyCode() {
+ return currencyCode;
+ }
+
+ /**
+ * ListPrice of a sku. Please refer {@code externalPriceOfSku} to know product/sku's associated
+ * list price in its currency code.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("listPrice")
+ private final String listPrice;
+
+ /**
+ * ListPrice of a sku. Please refer {@code externalPriceOfSku} to know product/sku's associated
+ * list price in its currency code.
+ *
+ * @return the value
+ */
+ public String getListPrice() {
+ return listPrice;
+ }
+
+ /** The subscription OCID if a this is dedicated CCD offer for a customer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("subscriptionId")
+ private final String subscriptionId;
+
+ /**
+ * The subscription OCID if a this is dedicated CCD offer for a customer.
+ *
+ * @return the value
+ */
+ public String getSubscriptionId() {
+ return subscriptionId;
+ }
+
+ /**
+ * The root compartment OCID of the customer's tenancy if offer is dedicated to a particular
+ * customer only.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private final String compartmentId;
+
+ /**
+ * The root compartment OCID of the customer's tenancy if offer is dedicated to a particular
+ * customer only.
+ *
+ * @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("CcdOffer(");
+ sb.append("super=").append(super.toString());
+ sb.append("id=").append(String.valueOf(this.id));
+ sb.append(", displayName=").append(String.valueOf(this.displayName));
+ sb.append(", typeOfOffer=").append(String.valueOf(this.typeOfOffer));
+ sb.append(", sourceType=").append(String.valueOf(this.sourceType));
+ sb.append(", reclaimTerm=").append(String.valueOf(this.reclaimTerm));
+ sb.append(", reclaimTermUnit=").append(String.valueOf(this.reclaimTermUnit));
+ sb.append(", lastUpdatedBy=").append(String.valueOf(this.lastUpdatedBy));
+ sb.append(", createdBy=").append(String.valueOf(this.createdBy));
+ sb.append(", orderDocumentNumber=").append(String.valueOf(this.orderDocumentNumber));
+ sb.append(", customerSegment=").append(String.valueOf(this.customerSegment));
+ sb.append(", isFillerUsageEnable=").append(String.valueOf(this.isFillerUsageEnable));
+ sb.append(", reportingRegion=").append(String.valueOf(this.reportingRegion));
+ sb.append(", sku=").append(String.valueOf(this.sku));
+ sb.append(", skuDisplayName=").append(String.valueOf(this.skuDisplayName));
+ sb.append(", skuMetric=").append(String.valueOf(this.skuMetric));
+ sb.append(", minQuantity=").append(String.valueOf(this.minQuantity));
+ sb.append(", maxQuantity=").append(String.valueOf(this.maxQuantity));
+ sb.append(", term=").append(String.valueOf(this.term));
+ sb.append(", unit=").append(String.valueOf(this.unit));
+ sb.append(", discountPct=").append(String.valueOf(this.discountPct));
+ sb.append(", externalPriceOfSku=").append(String.valueOf(this.externalPriceOfSku));
+ sb.append(", offerRestriction=").append(String.valueOf(this.offerRestriction));
+ sb.append(", bundleSkus=").append(String.valueOf(this.bundleSkus));
+ sb.append(", lifecycleState=").append(String.valueOf(this.lifecycleState));
+ sb.append(", lifecycleDetails=").append(String.valueOf(this.lifecycleDetails));
+ sb.append(", timeCreated=").append(String.valueOf(this.timeCreated));
+ sb.append(", timeTerminated=").append(String.valueOf(this.timeTerminated));
+ sb.append(", timeUpdated=").append(String.valueOf(this.timeUpdated));
+ 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(", timeCcdOfferStarts=").append(String.valueOf(this.timeCcdOfferStarts));
+ sb.append(", timeCcdOfferEnds=").append(String.valueOf(this.timeCcdOfferEnds));
+ sb.append(", currencyCode=").append(String.valueOf(this.currencyCode));
+ sb.append(", listPrice=").append(String.valueOf(this.listPrice));
+ sb.append(", subscriptionId=").append(String.valueOf(this.subscriptionId));
+ 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 CcdOffer)) {
+ return false;
+ }
+
+ CcdOffer other = (CcdOffer) o;
+ return java.util.Objects.equals(this.id, other.id)
+ && java.util.Objects.equals(this.displayName, other.displayName)
+ && java.util.Objects.equals(this.typeOfOffer, other.typeOfOffer)
+ && java.util.Objects.equals(this.sourceType, other.sourceType)
+ && java.util.Objects.equals(this.reclaimTerm, other.reclaimTerm)
+ && java.util.Objects.equals(this.reclaimTermUnit, other.reclaimTermUnit)
+ && java.util.Objects.equals(this.lastUpdatedBy, other.lastUpdatedBy)
+ && java.util.Objects.equals(this.createdBy, other.createdBy)
+ && java.util.Objects.equals(this.orderDocumentNumber, other.orderDocumentNumber)
+ && java.util.Objects.equals(this.customerSegment, other.customerSegment)
+ && java.util.Objects.equals(this.isFillerUsageEnable, other.isFillerUsageEnable)
+ && java.util.Objects.equals(this.reportingRegion, other.reportingRegion)
+ && java.util.Objects.equals(this.sku, other.sku)
+ && java.util.Objects.equals(this.skuDisplayName, other.skuDisplayName)
+ && java.util.Objects.equals(this.skuMetric, other.skuMetric)
+ && java.util.Objects.equals(this.minQuantity, other.minQuantity)
+ && java.util.Objects.equals(this.maxQuantity, other.maxQuantity)
+ && java.util.Objects.equals(this.term, other.term)
+ && java.util.Objects.equals(this.unit, other.unit)
+ && java.util.Objects.equals(this.discountPct, other.discountPct)
+ && java.util.Objects.equals(this.externalPriceOfSku, other.externalPriceOfSku)
+ && java.util.Objects.equals(this.offerRestriction, other.offerRestriction)
+ && java.util.Objects.equals(this.bundleSkus, other.bundleSkus)
+ && java.util.Objects.equals(this.lifecycleState, other.lifecycleState)
+ && java.util.Objects.equals(this.lifecycleDetails, other.lifecycleDetails)
+ && java.util.Objects.equals(this.timeCreated, other.timeCreated)
+ && java.util.Objects.equals(this.timeTerminated, other.timeTerminated)
+ && java.util.Objects.equals(this.timeUpdated, other.timeUpdated)
+ && java.util.Objects.equals(this.freeformTags, other.freeformTags)
+ && java.util.Objects.equals(this.definedTags, other.definedTags)
+ && java.util.Objects.equals(this.systemTags, other.systemTags)
+ && java.util.Objects.equals(this.timeCcdOfferStarts, other.timeCcdOfferStarts)
+ && java.util.Objects.equals(this.timeCcdOfferEnds, other.timeCcdOfferEnds)
+ && java.util.Objects.equals(this.currencyCode, other.currencyCode)
+ && java.util.Objects.equals(this.listPrice, other.listPrice)
+ && java.util.Objects.equals(this.subscriptionId, other.subscriptionId)
+ && 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.id == null ? 43 : this.id.hashCode());
+ result = (result * PRIME) + (this.displayName == null ? 43 : this.displayName.hashCode());
+ result = (result * PRIME) + (this.typeOfOffer == null ? 43 : this.typeOfOffer.hashCode());
+ result = (result * PRIME) + (this.sourceType == null ? 43 : this.sourceType.hashCode());
+ result = (result * PRIME) + (this.reclaimTerm == null ? 43 : this.reclaimTerm.hashCode());
+ result =
+ (result * PRIME)
+ + (this.reclaimTermUnit == null ? 43 : this.reclaimTermUnit.hashCode());
+ result =
+ (result * PRIME)
+ + (this.lastUpdatedBy == null ? 43 : this.lastUpdatedBy.hashCode());
+ result = (result * PRIME) + (this.createdBy == null ? 43 : this.createdBy.hashCode());
+ result =
+ (result * PRIME)
+ + (this.orderDocumentNumber == null
+ ? 43
+ : this.orderDocumentNumber.hashCode());
+ result =
+ (result * PRIME)
+ + (this.customerSegment == null ? 43 : this.customerSegment.hashCode());
+ result =
+ (result * PRIME)
+ + (this.isFillerUsageEnable == null
+ ? 43
+ : this.isFillerUsageEnable.hashCode());
+ result =
+ (result * PRIME)
+ + (this.reportingRegion == null ? 43 : this.reportingRegion.hashCode());
+ result = (result * PRIME) + (this.sku == null ? 43 : this.sku.hashCode());
+ result =
+ (result * PRIME)
+ + (this.skuDisplayName == null ? 43 : this.skuDisplayName.hashCode());
+ result = (result * PRIME) + (this.skuMetric == null ? 43 : this.skuMetric.hashCode());
+ result = (result * PRIME) + (this.minQuantity == null ? 43 : this.minQuantity.hashCode());
+ result = (result * PRIME) + (this.maxQuantity == null ? 43 : this.maxQuantity.hashCode());
+ result = (result * PRIME) + (this.term == null ? 43 : this.term.hashCode());
+ result = (result * PRIME) + (this.unit == null ? 43 : this.unit.hashCode());
+ result = (result * PRIME) + (this.discountPct == null ? 43 : this.discountPct.hashCode());
+ result =
+ (result * PRIME)
+ + (this.externalPriceOfSku == null
+ ? 43
+ : this.externalPriceOfSku.hashCode());
+ result =
+ (result * PRIME)
+ + (this.offerRestriction == null ? 43 : this.offerRestriction.hashCode());
+ result = (result * PRIME) + (this.bundleSkus == null ? 43 : this.bundleSkus.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.timeCreated == null ? 43 : this.timeCreated.hashCode());
+ result =
+ (result * PRIME)
+ + (this.timeTerminated == null ? 43 : this.timeTerminated.hashCode());
+ result = (result * PRIME) + (this.timeUpdated == null ? 43 : this.timeUpdated.hashCode());
+ result = (result * PRIME) + (this.freeformTags == null ? 43 : this.freeformTags.hashCode());
+ result = (result * PRIME) + (this.definedTags == null ? 43 : this.definedTags.hashCode());
+ result = (result * PRIME) + (this.systemTags == null ? 43 : this.systemTags.hashCode());
+ result =
+ (result * PRIME)
+ + (this.timeCcdOfferStarts == null
+ ? 43
+ : this.timeCcdOfferStarts.hashCode());
+ result =
+ (result * PRIME)
+ + (this.timeCcdOfferEnds == null ? 43 : this.timeCcdOfferEnds.hashCode());
+ result = (result * PRIME) + (this.currencyCode == null ? 43 : this.currencyCode.hashCode());
+ result = (result * PRIME) + (this.listPrice == null ? 43 : this.listPrice.hashCode());
+ result =
+ (result * PRIME)
+ + (this.subscriptionId == null ? 43 : this.subscriptionId.hashCode());
+ result =
+ (result * PRIME)
+ + (this.compartmentId == null ? 43 : this.compartmentId.hashCode());
+ result = (result * PRIME) + super.hashCode();
+ return result;
+ }
+}
diff --git a/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdOfferCollection.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdOfferCollection.java
new file mode 100644
index 00000000000..274070d8855
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdOfferCollection.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved.
+ * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+ */
+package com.oracle.bmc.ccdoffers.model;
+
+/**
+ * CCD offer summary items.
+ * 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: 20240601")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
+ builder = CcdOfferCollection.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CcdOfferCollection
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({"items"})
+ public CcdOfferCollection(java.util.List items) {
+ super();
+ this.items = items;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The CCD offer summary. */
+ @com.fasterxml.jackson.annotation.JsonProperty("items")
+ private java.util.List items;
+
+ /**
+ * The CCD offer summary.
+ *
+ * @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 CcdOfferCollection build() {
+ CcdOfferCollection model = new CcdOfferCollection(this.items);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CcdOfferCollection 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);
+ }
+
+ /** The CCD offer summary. */
+ @com.fasterxml.jackson.annotation.JsonProperty("items")
+ private final java.util.List items;
+
+ /**
+ * The CCD offer summary.
+ *
+ * @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("CcdOfferCollection(");
+ 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 CcdOfferCollection)) {
+ return false;
+ }
+
+ CcdOfferCollection other = (CcdOfferCollection) 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-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdOfferSummary.java b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdOfferSummary.java
new file mode 100644
index 00000000000..55895282823
--- /dev/null
+++ b/bmc-ccdoffers/src/main/java/com/oracle/bmc/ccdoffers/model/CcdOfferSummary.java
@@ -0,0 +1,1851 @@
+/**
+ * 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.ccdoffers.model;
+
+/**
+ * CCD offer details.
+ * 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: 20240601")
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = CcdOfferSummary.Builder.class)
+@com.fasterxml.jackson.annotation.JsonFilter(
+ com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel.EXPLICITLY_SET_FILTER_NAME)
+public final class CcdOfferSummary
+ extends com.oracle.bmc.http.client.internal.ExplicitlySetBmcModel {
+ @Deprecated
+ @java.beans.ConstructorProperties({
+ "id",
+ "displayName",
+ "subscriptionId",
+ "compartmentId",
+ "typeOfOffer",
+ "sourceType",
+ "reclaimTerm",
+ "reclaimTermUnit",
+ "customerSegment",
+ "isFillerUsageEnable",
+ "lastUpdatedBy",
+ "createdBy",
+ "orderDocumentNumber",
+ "reportingRegion",
+ "sku",
+ "skuDisplayName",
+ "skuMetric",
+ "minQuantity",
+ "maxQuantity",
+ "term",
+ "unit",
+ "discountPct",
+ "offerRestriction",
+ "bundleSkus",
+ "externalPriceOfSku",
+ "lifecycleState",
+ "lifecycleDetails",
+ "timeCreated",
+ "timeUpdated",
+ "timeTerminated",
+ "freeformTags",
+ "definedTags",
+ "systemTags",
+ "timeCcdOfferStarts",
+ "timeCcdOfferEnds",
+ "currencyCode",
+ "listPrice"
+ })
+ public CcdOfferSummary(
+ String id,
+ String displayName,
+ String subscriptionId,
+ String compartmentId,
+ TypeOfOffer typeOfOffer,
+ CcdOffer.SourceType sourceType,
+ Long reclaimTerm,
+ CcdOffer.ReclaimTermUnit reclaimTermUnit,
+ CustomerSegment customerSegment,
+ Boolean isFillerUsageEnable,
+ String lastUpdatedBy,
+ String createdBy,
+ String orderDocumentNumber,
+ String reportingRegion,
+ String sku,
+ String skuDisplayName,
+ String skuMetric,
+ Long minQuantity,
+ Long maxQuantity,
+ Integer term,
+ Unit unit,
+ String discountPct,
+ OfferRestriction offerRestriction,
+ java.util.List bundleSkus,
+ java.util.List externalPriceOfSku,
+ CcdOffer.LifecycleState lifecycleState,
+ CcdOffer.LifecycleDetails lifecycleDetails,
+ java.util.Date timeCreated,
+ java.util.Date timeUpdated,
+ java.util.Date timeTerminated,
+ java.util.Map freeformTags,
+ java.util.Map> definedTags,
+ java.util.Map> systemTags,
+ java.util.Date timeCcdOfferStarts,
+ java.util.Date timeCcdOfferEnds,
+ String currencyCode,
+ String listPrice) {
+ super();
+ this.id = id;
+ this.displayName = displayName;
+ this.subscriptionId = subscriptionId;
+ this.compartmentId = compartmentId;
+ this.typeOfOffer = typeOfOffer;
+ this.sourceType = sourceType;
+ this.reclaimTerm = reclaimTerm;
+ this.reclaimTermUnit = reclaimTermUnit;
+ this.customerSegment = customerSegment;
+ this.isFillerUsageEnable = isFillerUsageEnable;
+ this.lastUpdatedBy = lastUpdatedBy;
+ this.createdBy = createdBy;
+ this.orderDocumentNumber = orderDocumentNumber;
+ this.reportingRegion = reportingRegion;
+ this.sku = sku;
+ this.skuDisplayName = skuDisplayName;
+ this.skuMetric = skuMetric;
+ this.minQuantity = minQuantity;
+ this.maxQuantity = maxQuantity;
+ this.term = term;
+ this.unit = unit;
+ this.discountPct = discountPct;
+ this.offerRestriction = offerRestriction;
+ this.bundleSkus = bundleSkus;
+ this.externalPriceOfSku = externalPriceOfSku;
+ this.lifecycleState = lifecycleState;
+ this.lifecycleDetails = lifecycleDetails;
+ this.timeCreated = timeCreated;
+ this.timeUpdated = timeUpdated;
+ this.timeTerminated = timeTerminated;
+ this.freeformTags = freeformTags;
+ this.definedTags = definedTags;
+ this.systemTags = systemTags;
+ this.timeCcdOfferStarts = timeCcdOfferStarts;
+ this.timeCcdOfferEnds = timeCcdOfferEnds;
+ this.currencyCode = currencyCode;
+ this.listPrice = listPrice;
+ }
+
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "")
+ public static class Builder {
+ /** The CCD offer resource OCID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private String id;
+
+ /**
+ * The CCD offer resource OCID.
+ *
+ * @param id the value to set
+ * @return this builder
+ */
+ public Builder id(String id) {
+ this.id = id;
+ this.__explicitlySet__.add("id");
+ return this;
+ }
+ /** The CCD offer name. Avoid entering confidential information. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private String displayName;
+
+ /**
+ * The CCD offer name. 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 subscription OCID for which the dedicated CCD offer has been created. */
+ @com.fasterxml.jackson.annotation.JsonProperty("subscriptionId")
+ private String subscriptionId;
+
+ /**
+ * The subscription OCID for which the dedicated CCD offer has been created.
+ *
+ * @param subscriptionId the value to set
+ * @return this builder
+ */
+ public Builder subscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ this.__explicitlySet__.add("subscriptionId");
+ return this;
+ }
+ /** The root compartment OCID of the customer's tenancy. */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private String compartmentId;
+
+ /**
+ * The root compartment OCID of the customer's tenancy.
+ *
+ * @param compartmentId the value to set
+ * @return this builder
+ */
+ public Builder compartmentId(String compartmentId) {
+ this.compartmentId = compartmentId;
+ this.__explicitlySet__.add("compartmentId");
+ return this;
+ }
+ /** The created CCD offer type. */
+ @com.fasterxml.jackson.annotation.JsonProperty("typeOfOffer")
+ private TypeOfOffer typeOfOffer;
+
+ /**
+ * The created CCD offer type.
+ *
+ * @param typeOfOffer the value to set
+ * @return this builder
+ */
+ public Builder typeOfOffer(TypeOfOffer typeOfOffer) {
+ this.typeOfOffer = typeOfOffer;
+ this.__explicitlySet__.add("typeOfOffer");
+ return this;
+ }
+ /** The commercial workflow that created the CCD offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceType")
+ private CcdOffer.SourceType sourceType;
+
+ /**
+ * The commercial workflow that created the CCD offer.
+ *
+ * @param sourceType the value to set
+ * @return this builder
+ */
+ public Builder sourceType(CcdOffer.SourceType sourceType) {
+ this.sourceType = sourceType;
+ this.__explicitlySet__.add("sourceType");
+ return this;
+ }
+ /** The reclaim term for an offer, measured in {@code reclaimTermUnit}. */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTerm")
+ private Long reclaimTerm;
+
+ /**
+ * The reclaim term for an offer, measured in {@code reclaimTermUnit}.
+ *
+ * @param reclaimTerm the value to set
+ * @return this builder
+ */
+ public Builder reclaimTerm(Long reclaimTerm) {
+ this.reclaimTerm = reclaimTerm;
+ this.__explicitlySet__.add("reclaimTerm");
+ return this;
+ }
+ /** The unit used to measure {@code reclaimTerm}. */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTermUnit")
+ private CcdOffer.ReclaimTermUnit reclaimTermUnit;
+
+ /**
+ * The unit used to measure {@code reclaimTerm}.
+ *
+ * @param reclaimTermUnit the value to set
+ * @return this builder
+ */
+ public Builder reclaimTermUnit(CcdOffer.ReclaimTermUnit reclaimTermUnit) {
+ this.reclaimTermUnit = reclaimTermUnit;
+ this.__explicitlySet__.add("reclaimTermUnit");
+ return this;
+ }
+ /** The targeted customer segment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("customerSegment")
+ private CustomerSegment customerSegment;
+
+ /**
+ * The targeted customer segment.
+ *
+ * @param customerSegment the value to set
+ * @return this builder
+ */
+ public Builder customerSegment(CustomerSegment customerSegment) {
+ this.customerSegment = customerSegment;
+ this.__explicitlySet__.add("customerSegment");
+ return this;
+ }
+ /**
+ * Enable or disable filler usage if the customer usage quantity is below the minimum
+ * quantity, and you want metering to fill in usages to meet the minimum quantity.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("isFillerUsageEnable")
+ private Boolean isFillerUsageEnable;
+
+ /**
+ * Enable or disable filler usage if the customer usage quantity is below the minimum
+ * quantity, and you want metering to fill in usages to meet the minimum quantity.
+ *
+ * @param isFillerUsageEnable the value to set
+ * @return this builder
+ */
+ public Builder isFillerUsageEnable(Boolean isFillerUsageEnable) {
+ this.isFillerUsageEnable = isFillerUsageEnable;
+ this.__explicitlySet__.add("isFillerUsageEnable");
+ return this;
+ }
+ /** Entity/User who lastly updated the ccdOffer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lastUpdatedBy")
+ private String lastUpdatedBy;
+
+ /**
+ * Entity/User who lastly updated the ccdOffer.
+ *
+ * @param lastUpdatedBy the value to set
+ * @return this builder
+ */
+ public Builder lastUpdatedBy(String lastUpdatedBy) {
+ this.lastUpdatedBy = lastUpdatedBy;
+ this.__explicitlySet__.add("lastUpdatedBy");
+ return this;
+ }
+ /** Entity/User who created the ccdOffer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("createdBy")
+ private String createdBy;
+
+ /**
+ * Entity/User who created the ccdOffer.
+ *
+ * @param createdBy the value to set
+ * @return this builder
+ */
+ public Builder createdBy(String createdBy) {
+ this.createdBy = createdBy;
+ this.__explicitlySet__.add("createdBy");
+ return this;
+ }
+ /** Sales order document number. */
+ @com.fasterxml.jackson.annotation.JsonProperty("orderDocumentNumber")
+ private String orderDocumentNumber;
+
+ /**
+ * Sales order document number.
+ *
+ * @param orderDocumentNumber the value to set
+ * @return this builder
+ */
+ public Builder orderDocumentNumber(String orderDocumentNumber) {
+ this.orderDocumentNumber = orderDocumentNumber;
+ this.__explicitlySet__.add("orderDocumentNumber");
+ return this;
+ }
+ /** Defines where the filler usage is reported */
+ @com.fasterxml.jackson.annotation.JsonProperty("reportingRegion")
+ private String reportingRegion;
+
+ /**
+ * Defines where the filler usage is reported
+ *
+ * @param reportingRegion the value to set
+ * @return this builder
+ */
+ public Builder reportingRegion(String reportingRegion) {
+ this.reportingRegion = reportingRegion;
+ this.__explicitlySet__.add("reportingRegion");
+ return this;
+ }
+ /** The SKU part number (prefaced with "B") the CCD is associated with. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sku")
+ private String sku;
+
+ /**
+ * The SKU part number (prefaced with "B") the CCD is associated with.
+ *
+ * @param sku the value to set
+ * @return this builder
+ */
+ public Builder sku(String sku) {
+ this.sku = sku;
+ this.__explicitlySet__.add("sku");
+ return this;
+ }
+ /** The canonical SKU display name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuDisplayName")
+ private String skuDisplayName;
+
+ /**
+ * The canonical SKU display name.
+ *
+ * @param skuDisplayName the value to set
+ * @return this builder
+ */
+ public Builder skuDisplayName(String skuDisplayName) {
+ this.skuDisplayName = skuDisplayName;
+ this.__explicitlySet__.add("skuDisplayName");
+ return this;
+ }
+ /** The canonical billing metric. */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuMetric")
+ private String skuMetric;
+
+ /**
+ * The canonical billing metric.
+ *
+ * @param skuMetric the value to set
+ * @return this builder
+ */
+ public Builder skuMetric(String skuMetric) {
+ this.skuMetric = skuMetric;
+ this.__explicitlySet__.add("skuMetric");
+ return this;
+ }
+ /**
+ * The minimum quantity of the primary SKU committed to the CCD offer. For FLEX offers,
+ * minQuantity and maxQuantity must both be equal if maxQuantity provided.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minQuantity")
+ private Long minQuantity;
+
+ /**
+ * The minimum quantity of the primary SKU committed to the CCD offer. For FLEX offers,
+ * minQuantity and maxQuantity must both be equal if maxQuantity provided.
+ *
+ * @param minQuantity the value to set
+ * @return this builder
+ */
+ public Builder minQuantity(Long minQuantity) {
+ this.minQuantity = minQuantity;
+ this.__explicitlySet__.add("minQuantity");
+ return this;
+ }
+ /**
+ * The maximum quantity of the primary SKU committed to the CCD offer. For FLEX offers if
+ * provided, it must equal minQuantity.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("maxQuantity")
+ private Long maxQuantity;
+
+ /**
+ * The maximum quantity of the primary SKU committed to the CCD offer. For FLEX offers if
+ * provided, it must equal minQuantity.
+ *
+ * @param maxQuantity the value to set
+ * @return this builder
+ */
+ public Builder maxQuantity(Long maxQuantity) {
+ this.maxQuantity = maxQuantity;
+ this.__explicitlySet__.add("maxQuantity");
+ return this;
+ }
+ /** The number of terms the offer is applicable to. */
+ @com.fasterxml.jackson.annotation.JsonProperty("term")
+ private Integer term;
+
+ /**
+ * The number of terms the offer is applicable to.
+ *
+ * @param term the value to set
+ * @return this builder
+ */
+ public Builder term(Integer term) {
+ this.term = term;
+ this.__explicitlySet__.add("term");
+ return this;
+ }
+ /** The term units. */
+ @com.fasterxml.jackson.annotation.JsonProperty("unit")
+ private Unit unit;
+
+ /**
+ * The term units.
+ *
+ * @param unit the value to set
+ * @return this builder
+ */
+ public Builder unit(Unit unit) {
+ this.unit = unit;
+ this.__explicitlySet__.add("unit");
+ return this;
+ }
+ /**
+ * The discount percentage applicable to the CCD offer, represented as a decimal string from
+ * 0 through 100 inclusive.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("discountPct")
+ private String discountPct;
+
+ /**
+ * The discount percentage applicable to the CCD offer, represented as a decimal string from
+ * 0 through 100 inclusive.
+ *
+ * @param discountPct the value to set
+ * @return this builder
+ */
+ public Builder discountPct(String discountPct) {
+ this.discountPct = discountPct;
+ this.__explicitlySet__.add("discountPct");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("offerRestriction")
+ private OfferRestriction offerRestriction;
+
+ public Builder offerRestriction(OfferRestriction offerRestriction) {
+ this.offerRestriction = offerRestriction;
+ this.__explicitlySet__.add("offerRestriction");
+ return this;
+ }
+ /**
+ * The polymorphic bundled SKU definitions. Every bundled SKU in an offer must use the same
+ * {@code quantityRule}; don't mix {@code FIXED_RATIO} and {@code CUSTOMER_SELECTED} bundled
+ * SKUs in one offer. An offer can contain at most five SKUs in total, including the primary
+ * SKU.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("bundleSkus")
+ private java.util.List bundleSkus;
+
+ /**
+ * The polymorphic bundled SKU definitions. Every bundled SKU in an offer must use the same
+ * {@code quantityRule}; don't mix {@code FIXED_RATIO} and {@code CUSTOMER_SELECTED} bundled
+ * SKUs in one offer. An offer can contain at most five SKUs in total, including the primary
+ * SKU.
+ *
+ * @param bundleSkus the value to set
+ * @return this builder
+ */
+ public Builder bundleSkus(java.util.List bundleSkus) {
+ this.bundleSkus = bundleSkus;
+ this.__explicitlySet__.add("bundleSkus");
+ return this;
+ }
+ /** The SKU list price in all currency codes. */
+ @com.fasterxml.jackson.annotation.JsonProperty("externalPriceOfSku")
+ private java.util.List externalPriceOfSku;
+
+ /**
+ * The SKU list price in all currency codes.
+ *
+ * @param externalPriceOfSku the value to set
+ * @return this builder
+ */
+ public Builder externalPriceOfSku(
+ java.util.List externalPriceOfSku) {
+ this.externalPriceOfSku = externalPriceOfSku;
+ this.__explicitlySet__.add("externalPriceOfSku");
+ return this;
+ }
+ /**
+ * The CCD offer's current state. This always defaults to {@code Active}. For the accurate
+ * resource state, refer to the {@code lifecycleDetails} property value.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private CcdOffer.LifecycleState lifecycleState;
+
+ /**
+ * The CCD offer's current state. This always defaults to {@code Active}. For the accurate
+ * resource state, refer to the {@code lifecycleDetails} property value.
+ *
+ * @param lifecycleState the value to set
+ * @return this builder
+ */
+ public Builder lifecycleState(CcdOffer.LifecycleState lifecycleState) {
+ this.lifecycleState = lifecycleState;
+ this.__explicitlySet__.add("lifecycleState");
+ return this;
+ }
+ /**
+ * The CCD offer's detailed current state. The state value is determined by {@code
+ * timeCcdOfferStarts}, {@code timeCcdOfferEnds}, and {@code timeTerminated} with respect to
+ * the current time.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private CcdOffer.LifecycleDetails lifecycleDetails;
+
+ /**
+ * The CCD offer's detailed current state. The state value is determined by {@code
+ * timeCcdOfferStarts}, {@code timeCcdOfferEnds}, and {@code timeTerminated} with respect to
+ * the current time.
+ *
+ * @param lifecycleDetails the value to set
+ * @return this builder
+ */
+ public Builder lifecycleDetails(CcdOffer.LifecycleDetails lifecycleDetails) {
+ this.lifecycleDetails = lifecycleDetails;
+ this.__explicitlySet__.add("lifecycleDetails");
+ return this;
+ }
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private java.util.Date timeCreated;
+
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-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;
+ }
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example:
+ * {@code 2025-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private java.util.Date timeUpdated;
+
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example:
+ * {@code 2025-01-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;
+ }
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeTerminated")
+ private java.util.Date timeTerminated;
+
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ *
+ * @param timeTerminated the value to set
+ * @return this builder
+ */
+ public Builder timeTerminated(java.util.Date timeTerminated) {
+ this.timeTerminated = timeTerminated;
+ this.__explicitlySet__.add("timeTerminated");
+ 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": {"free-tier-retained": "true"}}}
+ */
+ @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": {"free-tier-retained": "true"}}}
+ *
+ * @param systemTags the value to set
+ * @return this builder
+ */
+ public Builder systemTags(java.util.Map> systemTags) {
+ this.systemTags = systemTags;
+ this.__explicitlySet__.add("systemTags");
+ return this;
+ }
+ /**
+ * The inclusive date the CCD offer will be effective. The format is defined by RFC 3339.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdOfferStarts")
+ private java.util.Date timeCcdOfferStarts;
+
+ /**
+ * The inclusive date the CCD offer will be effective. The format is defined by RFC 3339.
+ *
+ * @param timeCcdOfferStarts the value to set
+ * @return this builder
+ */
+ public Builder timeCcdOfferStarts(java.util.Date timeCcdOfferStarts) {
+ this.timeCcdOfferStarts = timeCcdOfferStarts;
+ this.__explicitlySet__.add("timeCcdOfferStarts");
+ return this;
+ }
+ /**
+ * The inclusive time when the CCD offer is no longer in effect. The format is defined by
+ * RFC 3339.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCcdOfferEnds")
+ private java.util.Date timeCcdOfferEnds;
+
+ /**
+ * The inclusive time when the CCD offer is no longer in effect. The format is defined by
+ * RFC 3339.
+ *
+ * @param timeCcdOfferEnds the value to set
+ * @return this builder
+ */
+ public Builder timeCcdOfferEnds(java.util.Date timeCcdOfferEnds) {
+ this.timeCcdOfferEnds = timeCcdOfferEnds;
+ this.__explicitlySet__.add("timeCcdOfferEnds");
+ return this;
+ }
+ /**
+ * Currency code of listPrice associated with primary product/sku. This will be always null.
+ * Please refer {@code externalPriceOfSku} to know product/sku's associated list price in
+ * its currency code.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("currencyCode")
+ private String currencyCode;
+
+ /**
+ * Currency code of listPrice associated with primary product/sku. This will be always null.
+ * Please refer {@code externalPriceOfSku} to know product/sku's associated list price in
+ * its currency code.
+ *
+ * @param currencyCode the value to set
+ * @return this builder
+ */
+ public Builder currencyCode(String currencyCode) {
+ this.currencyCode = currencyCode;
+ this.__explicitlySet__.add("currencyCode");
+ return this;
+ }
+ /**
+ * ListPrice of a sku. Please refer {@code externalPriceOfSku} to know product/sku's
+ * associated list price in its currency code.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("listPrice")
+ private String listPrice;
+
+ /**
+ * ListPrice of a sku. Please refer {@code externalPriceOfSku} to know product/sku's
+ * associated list price in its currency code.
+ *
+ * @param listPrice the value to set
+ * @return this builder
+ */
+ public Builder listPrice(String listPrice) {
+ this.listPrice = listPrice;
+ this.__explicitlySet__.add("listPrice");
+ return this;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ private final java.util.Set __explicitlySet__ = new java.util.HashSet();
+
+ public CcdOfferSummary build() {
+ CcdOfferSummary model =
+ new CcdOfferSummary(
+ this.id,
+ this.displayName,
+ this.subscriptionId,
+ this.compartmentId,
+ this.typeOfOffer,
+ this.sourceType,
+ this.reclaimTerm,
+ this.reclaimTermUnit,
+ this.customerSegment,
+ this.isFillerUsageEnable,
+ this.lastUpdatedBy,
+ this.createdBy,
+ this.orderDocumentNumber,
+ this.reportingRegion,
+ this.sku,
+ this.skuDisplayName,
+ this.skuMetric,
+ this.minQuantity,
+ this.maxQuantity,
+ this.term,
+ this.unit,
+ this.discountPct,
+ this.offerRestriction,
+ this.bundleSkus,
+ this.externalPriceOfSku,
+ this.lifecycleState,
+ this.lifecycleDetails,
+ this.timeCreated,
+ this.timeUpdated,
+ this.timeTerminated,
+ this.freeformTags,
+ this.definedTags,
+ this.systemTags,
+ this.timeCcdOfferStarts,
+ this.timeCcdOfferEnds,
+ this.currencyCode,
+ this.listPrice);
+ for (String explicitlySetProperty : this.__explicitlySet__) {
+ model.markPropertyAsExplicitlySet(explicitlySetProperty);
+ }
+ return model;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonIgnore
+ public Builder copy(CcdOfferSummary model) {
+ if (model.wasPropertyExplicitlySet("id")) {
+ this.id(model.getId());
+ }
+ if (model.wasPropertyExplicitlySet("displayName")) {
+ this.displayName(model.getDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("subscriptionId")) {
+ this.subscriptionId(model.getSubscriptionId());
+ }
+ if (model.wasPropertyExplicitlySet("compartmentId")) {
+ this.compartmentId(model.getCompartmentId());
+ }
+ if (model.wasPropertyExplicitlySet("typeOfOffer")) {
+ this.typeOfOffer(model.getTypeOfOffer());
+ }
+ if (model.wasPropertyExplicitlySet("sourceType")) {
+ this.sourceType(model.getSourceType());
+ }
+ if (model.wasPropertyExplicitlySet("reclaimTerm")) {
+ this.reclaimTerm(model.getReclaimTerm());
+ }
+ if (model.wasPropertyExplicitlySet("reclaimTermUnit")) {
+ this.reclaimTermUnit(model.getReclaimTermUnit());
+ }
+ if (model.wasPropertyExplicitlySet("customerSegment")) {
+ this.customerSegment(model.getCustomerSegment());
+ }
+ if (model.wasPropertyExplicitlySet("isFillerUsageEnable")) {
+ this.isFillerUsageEnable(model.getIsFillerUsageEnable());
+ }
+ if (model.wasPropertyExplicitlySet("lastUpdatedBy")) {
+ this.lastUpdatedBy(model.getLastUpdatedBy());
+ }
+ if (model.wasPropertyExplicitlySet("createdBy")) {
+ this.createdBy(model.getCreatedBy());
+ }
+ if (model.wasPropertyExplicitlySet("orderDocumentNumber")) {
+ this.orderDocumentNumber(model.getOrderDocumentNumber());
+ }
+ if (model.wasPropertyExplicitlySet("reportingRegion")) {
+ this.reportingRegion(model.getReportingRegion());
+ }
+ if (model.wasPropertyExplicitlySet("sku")) {
+ this.sku(model.getSku());
+ }
+ if (model.wasPropertyExplicitlySet("skuDisplayName")) {
+ this.skuDisplayName(model.getSkuDisplayName());
+ }
+ if (model.wasPropertyExplicitlySet("skuMetric")) {
+ this.skuMetric(model.getSkuMetric());
+ }
+ if (model.wasPropertyExplicitlySet("minQuantity")) {
+ this.minQuantity(model.getMinQuantity());
+ }
+ if (model.wasPropertyExplicitlySet("maxQuantity")) {
+ this.maxQuantity(model.getMaxQuantity());
+ }
+ if (model.wasPropertyExplicitlySet("term")) {
+ this.term(model.getTerm());
+ }
+ if (model.wasPropertyExplicitlySet("unit")) {
+ this.unit(model.getUnit());
+ }
+ if (model.wasPropertyExplicitlySet("discountPct")) {
+ this.discountPct(model.getDiscountPct());
+ }
+ if (model.wasPropertyExplicitlySet("offerRestriction")) {
+ this.offerRestriction(model.getOfferRestriction());
+ }
+ if (model.wasPropertyExplicitlySet("bundleSkus")) {
+ this.bundleSkus(model.getBundleSkus());
+ }
+ if (model.wasPropertyExplicitlySet("externalPriceOfSku")) {
+ this.externalPriceOfSku(model.getExternalPriceOfSku());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleState")) {
+ this.lifecycleState(model.getLifecycleState());
+ }
+ if (model.wasPropertyExplicitlySet("lifecycleDetails")) {
+ this.lifecycleDetails(model.getLifecycleDetails());
+ }
+ if (model.wasPropertyExplicitlySet("timeCreated")) {
+ this.timeCreated(model.getTimeCreated());
+ }
+ if (model.wasPropertyExplicitlySet("timeUpdated")) {
+ this.timeUpdated(model.getTimeUpdated());
+ }
+ if (model.wasPropertyExplicitlySet("timeTerminated")) {
+ this.timeTerminated(model.getTimeTerminated());
+ }
+ if (model.wasPropertyExplicitlySet("freeformTags")) {
+ this.freeformTags(model.getFreeformTags());
+ }
+ if (model.wasPropertyExplicitlySet("definedTags")) {
+ this.definedTags(model.getDefinedTags());
+ }
+ if (model.wasPropertyExplicitlySet("systemTags")) {
+ this.systemTags(model.getSystemTags());
+ }
+ if (model.wasPropertyExplicitlySet("timeCcdOfferStarts")) {
+ this.timeCcdOfferStarts(model.getTimeCcdOfferStarts());
+ }
+ if (model.wasPropertyExplicitlySet("timeCcdOfferEnds")) {
+ this.timeCcdOfferEnds(model.getTimeCcdOfferEnds());
+ }
+ if (model.wasPropertyExplicitlySet("currencyCode")) {
+ this.currencyCode(model.getCurrencyCode());
+ }
+ if (model.wasPropertyExplicitlySet("listPrice")) {
+ this.listPrice(model.getListPrice());
+ }
+ return this;
+ }
+ }
+
+ /** Create a new builder. */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public Builder toBuilder() {
+ return new Builder().copy(this);
+ }
+
+ /** The CCD offer resource OCID. */
+ @com.fasterxml.jackson.annotation.JsonProperty("id")
+ private final String id;
+
+ /**
+ * The CCD offer resource OCID.
+ *
+ * @return the value
+ */
+ public String getId() {
+ return id;
+ }
+
+ /** The CCD offer name. Avoid entering confidential information. */
+ @com.fasterxml.jackson.annotation.JsonProperty("displayName")
+ private final String displayName;
+
+ /**
+ * The CCD offer name. Avoid entering confidential information.
+ *
+ * @return the value
+ */
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ /** The subscription OCID for which the dedicated CCD offer has been created. */
+ @com.fasterxml.jackson.annotation.JsonProperty("subscriptionId")
+ private final String subscriptionId;
+
+ /**
+ * The subscription OCID for which the dedicated CCD offer has been created.
+ *
+ * @return the value
+ */
+ public String getSubscriptionId() {
+ return subscriptionId;
+ }
+
+ /** The root compartment OCID of the customer's tenancy. */
+ @com.fasterxml.jackson.annotation.JsonProperty("compartmentId")
+ private final String compartmentId;
+
+ /**
+ * The root compartment OCID of the customer's tenancy.
+ *
+ * @return the value
+ */
+ public String getCompartmentId() {
+ return compartmentId;
+ }
+
+ /** The created CCD offer type. */
+ public enum TypeOfOffer implements com.oracle.bmc.http.internal.BmcEnum {
+ Standard("STANDARD"),
+ Custom("CUSTOM"),
+ Private("PRIVATE"),
+ Contractual("CONTRACTUAL"),
+ Flex("FLEX"),
+
+ /**
+ * 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(TypeOfOffer.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (TypeOfOffer v : TypeOfOffer.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ TypeOfOffer(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static TypeOfOffer create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'TypeOfOffer', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The created CCD offer type. */
+ @com.fasterxml.jackson.annotation.JsonProperty("typeOfOffer")
+ private final TypeOfOffer typeOfOffer;
+
+ /**
+ * The created CCD offer type.
+ *
+ * @return the value
+ */
+ public TypeOfOffer getTypeOfOffer() {
+ return typeOfOffer;
+ }
+
+ /** The commercial workflow that created the CCD offer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sourceType")
+ private final CcdOffer.SourceType sourceType;
+
+ /**
+ * The commercial workflow that created the CCD offer.
+ *
+ * @return the value
+ */
+ public CcdOffer.SourceType getSourceType() {
+ return sourceType;
+ }
+
+ /** The reclaim term for an offer, measured in {@code reclaimTermUnit}. */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTerm")
+ private final Long reclaimTerm;
+
+ /**
+ * The reclaim term for an offer, measured in {@code reclaimTermUnit}.
+ *
+ * @return the value
+ */
+ public Long getReclaimTerm() {
+ return reclaimTerm;
+ }
+
+ /** The unit used to measure {@code reclaimTerm}. */
+ @com.fasterxml.jackson.annotation.JsonProperty("reclaimTermUnit")
+ private final CcdOffer.ReclaimTermUnit reclaimTermUnit;
+
+ /**
+ * The unit used to measure {@code reclaimTerm}.
+ *
+ * @return the value
+ */
+ public CcdOffer.ReclaimTermUnit getReclaimTermUnit() {
+ return reclaimTermUnit;
+ }
+
+ /** The targeted customer segment. */
+ public enum CustomerSegment implements com.oracle.bmc.http.internal.BmcEnum {
+ Internal("INTERNAL"),
+ External("EXTERNAL"),
+
+ /**
+ * 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(CustomerSegment.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (CustomerSegment v : CustomerSegment.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ CustomerSegment(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static CustomerSegment create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'CustomerSegment', returning UnknownEnumValue",
+ key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The targeted customer segment. */
+ @com.fasterxml.jackson.annotation.JsonProperty("customerSegment")
+ private final CustomerSegment customerSegment;
+
+ /**
+ * The targeted customer segment.
+ *
+ * @return the value
+ */
+ public CustomerSegment getCustomerSegment() {
+ return customerSegment;
+ }
+
+ /**
+ * Enable or disable filler usage if the customer usage quantity is below the minimum quantity,
+ * and you want metering to fill in usages to meet the minimum quantity.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("isFillerUsageEnable")
+ private final Boolean isFillerUsageEnable;
+
+ /**
+ * Enable or disable filler usage if the customer usage quantity is below the minimum quantity,
+ * and you want metering to fill in usages to meet the minimum quantity.
+ *
+ * @return the value
+ */
+ public Boolean getIsFillerUsageEnable() {
+ return isFillerUsageEnable;
+ }
+
+ /** Entity/User who lastly updated the ccdOffer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("lastUpdatedBy")
+ private final String lastUpdatedBy;
+
+ /**
+ * Entity/User who lastly updated the ccdOffer.
+ *
+ * @return the value
+ */
+ public String getLastUpdatedBy() {
+ return lastUpdatedBy;
+ }
+
+ /** Entity/User who created the ccdOffer. */
+ @com.fasterxml.jackson.annotation.JsonProperty("createdBy")
+ private final String createdBy;
+
+ /**
+ * Entity/User who created the ccdOffer.
+ *
+ * @return the value
+ */
+ public String getCreatedBy() {
+ return createdBy;
+ }
+
+ /** Sales order document number. */
+ @com.fasterxml.jackson.annotation.JsonProperty("orderDocumentNumber")
+ private final String orderDocumentNumber;
+
+ /**
+ * Sales order document number.
+ *
+ * @return the value
+ */
+ public String getOrderDocumentNumber() {
+ return orderDocumentNumber;
+ }
+
+ /** Defines where the filler usage is reported */
+ @com.fasterxml.jackson.annotation.JsonProperty("reportingRegion")
+ private final String reportingRegion;
+
+ /**
+ * Defines where the filler usage is reported
+ *
+ * @return the value
+ */
+ public String getReportingRegion() {
+ return reportingRegion;
+ }
+
+ /** The SKU part number (prefaced with "B") the CCD is associated with. */
+ @com.fasterxml.jackson.annotation.JsonProperty("sku")
+ private final String sku;
+
+ /**
+ * The SKU part number (prefaced with "B") the CCD is associated with.
+ *
+ * @return the value
+ */
+ public String getSku() {
+ return sku;
+ }
+
+ /** The canonical SKU display name. */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuDisplayName")
+ private final String skuDisplayName;
+
+ /**
+ * The canonical SKU display name.
+ *
+ * @return the value
+ */
+ public String getSkuDisplayName() {
+ return skuDisplayName;
+ }
+
+ /** The canonical billing metric. */
+ @com.fasterxml.jackson.annotation.JsonProperty("skuMetric")
+ private final String skuMetric;
+
+ /**
+ * The canonical billing metric.
+ *
+ * @return the value
+ */
+ public String getSkuMetric() {
+ return skuMetric;
+ }
+
+ /**
+ * The minimum quantity of the primary SKU committed to the CCD offer. For FLEX offers,
+ * minQuantity and maxQuantity must both be equal if maxQuantity provided.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("minQuantity")
+ private final Long minQuantity;
+
+ /**
+ * The minimum quantity of the primary SKU committed to the CCD offer. For FLEX offers,
+ * minQuantity and maxQuantity must both be equal if maxQuantity provided.
+ *
+ * @return the value
+ */
+ public Long getMinQuantity() {
+ return minQuantity;
+ }
+
+ /**
+ * The maximum quantity of the primary SKU committed to the CCD offer. For FLEX offers if
+ * provided, it must equal minQuantity.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("maxQuantity")
+ private final Long maxQuantity;
+
+ /**
+ * The maximum quantity of the primary SKU committed to the CCD offer. For FLEX offers if
+ * provided, it must equal minQuantity.
+ *
+ * @return the value
+ */
+ public Long getMaxQuantity() {
+ return maxQuantity;
+ }
+
+ /** The number of terms the offer is applicable to. */
+ @com.fasterxml.jackson.annotation.JsonProperty("term")
+ private final Integer term;
+
+ /**
+ * The number of terms the offer is applicable to.
+ *
+ * @return the value
+ */
+ public Integer getTerm() {
+ return term;
+ }
+
+ /** The term units. */
+ public enum Unit implements com.oracle.bmc.http.internal.BmcEnum {
+ Months("MONTHS"),
+ Years("YEARS"),
+ Days("DAYS"),
+ Hours("HOURS"),
+
+ /**
+ * 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(Unit.class);
+
+ private final String value;
+ private static java.util.Map map;
+
+ static {
+ map = new java.util.HashMap<>();
+ for (Unit v : Unit.values()) {
+ if (v != UnknownEnumValue) {
+ map.put(v.getValue(), v);
+ }
+ }
+ }
+
+ Unit(String value) {
+ this.value = value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonCreator
+ public static Unit create(String key) {
+ if (map.containsKey(key)) {
+ return map.get(key);
+ }
+ LOG.warn(
+ "Received unknown value '{}' for enum 'Unit', returning UnknownEnumValue", key);
+ return UnknownEnumValue;
+ }
+ };
+ /** The term units. */
+ @com.fasterxml.jackson.annotation.JsonProperty("unit")
+ private final Unit unit;
+
+ /**
+ * The term units.
+ *
+ * @return the value
+ */
+ public Unit getUnit() {
+ return unit;
+ }
+
+ /**
+ * The discount percentage applicable to the CCD offer, represented as a decimal string from 0
+ * through 100 inclusive.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("discountPct")
+ private final String discountPct;
+
+ /**
+ * The discount percentage applicable to the CCD offer, represented as a decimal string from 0
+ * through 100 inclusive.
+ *
+ * @return the value
+ */
+ public String getDiscountPct() {
+ return discountPct;
+ }
+
+ @com.fasterxml.jackson.annotation.JsonProperty("offerRestriction")
+ private final OfferRestriction offerRestriction;
+
+ public OfferRestriction getOfferRestriction() {
+ return offerRestriction;
+ }
+
+ /**
+ * The polymorphic bundled SKU definitions. Every bundled SKU in an offer must use the same
+ * {@code quantityRule}; don't mix {@code FIXED_RATIO} and {@code CUSTOMER_SELECTED} bundled
+ * SKUs in one offer. An offer can contain at most five SKUs in total, including the primary
+ * SKU.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("bundleSkus")
+ private final java.util.List bundleSkus;
+
+ /**
+ * The polymorphic bundled SKU definitions. Every bundled SKU in an offer must use the same
+ * {@code quantityRule}; don't mix {@code FIXED_RATIO} and {@code CUSTOMER_SELECTED} bundled
+ * SKUs in one offer. An offer can contain at most five SKUs in total, including the primary
+ * SKU.
+ *
+ * @return the value
+ */
+ public java.util.List getBundleSkus() {
+ return bundleSkus;
+ }
+
+ /** The SKU list price in all currency codes. */
+ @com.fasterxml.jackson.annotation.JsonProperty("externalPriceOfSku")
+ private final java.util.List externalPriceOfSku;
+
+ /**
+ * The SKU list price in all currency codes.
+ *
+ * @return the value
+ */
+ public java.util.List getExternalPriceOfSku() {
+ return externalPriceOfSku;
+ }
+
+ /**
+ * The CCD offer's current state. This always defaults to {@code Active}. For the accurate
+ * resource state, refer to the {@code lifecycleDetails} property value.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleState")
+ private final CcdOffer.LifecycleState lifecycleState;
+
+ /**
+ * The CCD offer's current state. This always defaults to {@code Active}. For the accurate
+ * resource state, refer to the {@code lifecycleDetails} property value.
+ *
+ * @return the value
+ */
+ public CcdOffer.LifecycleState getLifecycleState() {
+ return lifecycleState;
+ }
+
+ /**
+ * The CCD offer's detailed current state. The state value is determined by {@code
+ * timeCcdOfferStarts}, {@code timeCcdOfferEnds}, and {@code timeTerminated} with respect to the
+ * current time.
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("lifecycleDetails")
+ private final CcdOffer.LifecycleDetails lifecycleDetails;
+
+ /**
+ * The CCD offer's detailed current state. The state value is determined by {@code
+ * timeCcdOfferStarts}, {@code timeCcdOfferEnds}, and {@code timeTerminated} with respect to the
+ * current time.
+ *
+ * @return the value
+ */
+ public CcdOffer.LifecycleDetails getLifecycleDetails() {
+ return lifecycleDetails;
+ }
+
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeCreated")
+ private final java.util.Date timeCreated;
+
+ /**
+ * Date and time the CCD was created. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeCreated() {
+ return timeCreated;
+ }
+
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example: {@code
+ * 2025-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeUpdated")
+ private final java.util.Date timeUpdated;
+
+ /**
+ * Date and time the CCD was updated lastly. The format is defined by RFC 3339. Example: {@code
+ * 2025-01-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeUpdated() {
+ return timeUpdated;
+ }
+
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ */
+ @com.fasterxml.jackson.annotation.JsonProperty("timeTerminated")
+ private final java.util.Date timeTerminated;
+
+ /**
+ * Date and time the CCD was terminated. The format is defined by RFC 3339. Example: {@code
+ * 2022-01-25T21:10:29.600Z}
+ *
+ * @return the value
+ */
+ public java.util.Date getTimeTerminated() {
+ return timeTerminated;
+ }
+
+ /**
+ * 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).
+ *
+ *