diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 6f9e3abda..489a7a49e 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -3,6 +3,24 @@ Change Log
All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog `_.
+====================
+2.127.0 - 2024-05-28
+====================
+
+Added
+-----
+* Support for Demand Signal service
+* Support for external database connectors in the Database service
+* Support for monitoring standby databases in the Database Management service
+* Support for resource overviews in the Capacity Management service
+* Support for optional parameters in the download API in the Java Management Service Downloads service
+
+Breaking
+--------
+* The operation list_occ_availabilities can return any string for the params resource_type and workload_type in the OCI Control Center service
+* The model OccCapacityRequestComputeDetails has been removed in the OCI Control Center service
+* The params resource_type and workload_type can accept any string in the models OccAvailabilitySummary and OccCapacityRequestBaseDetails in the OCI Control Center service
+
====================
2.126.4 - 2024-05-21
====================
diff --git a/docs/api/capacity_management.rst b/docs/api/capacity_management.rst
index aa27fa380..242358ffb 100644
--- a/docs/api/capacity_management.rst
+++ b/docs/api/capacity_management.rst
@@ -29,12 +29,13 @@ Capacity Management
oci.capacity_management.models.OccCapacityRequest
oci.capacity_management.models.OccCapacityRequestBaseDetails
oci.capacity_management.models.OccCapacityRequestCollection
- oci.capacity_management.models.OccCapacityRequestComputeDetails
oci.capacity_management.models.OccCapacityRequestSummary
oci.capacity_management.models.OccCustomer
oci.capacity_management.models.OccCustomerGroup
oci.capacity_management.models.OccCustomerGroupCollection
oci.capacity_management.models.OccCustomerGroupSummary
+ oci.capacity_management.models.OccOverviewCollection
+ oci.capacity_management.models.OccOverviewSummary
oci.capacity_management.models.PatchInsertInstruction
oci.capacity_management.models.PatchInsertMultipleInstruction
oci.capacity_management.models.PatchInstruction
diff --git a/docs/api/capacity_management/models/oci.capacity_management.models.OccCapacityRequestComputeDetails.rst b/docs/api/capacity_management/models/oci.capacity_management.models.OccOverviewCollection.rst
similarity index 58%
rename from docs/api/capacity_management/models/oci.capacity_management.models.OccCapacityRequestComputeDetails.rst
rename to docs/api/capacity_management/models/oci.capacity_management.models.OccOverviewCollection.rst
index d13fd2edc..469da47a0 100644
--- a/docs/api/capacity_management/models/oci.capacity_management.models.OccCapacityRequestComputeDetails.rst
+++ b/docs/api/capacity_management/models/oci.capacity_management.models.OccOverviewCollection.rst
@@ -1,9 +1,9 @@
-OccCapacityRequestComputeDetails
-================================
+OccOverviewCollection
+=====================
.. currentmodule:: oci.capacity_management.models
-.. autoclass:: OccCapacityRequestComputeDetails
+.. autoclass:: OccOverviewCollection
:show-inheritance:
:special-members: __init__
:members:
diff --git a/docs/api/capacity_management/models/oci.capacity_management.models.OccOverviewSummary.rst b/docs/api/capacity_management/models/oci.capacity_management.models.OccOverviewSummary.rst
new file mode 100644
index 000000000..7b96f95da
--- /dev/null
+++ b/docs/api/capacity_management/models/oci.capacity_management.models.OccOverviewSummary.rst
@@ -0,0 +1,11 @@
+OccOverviewSummary
+==================
+
+.. currentmodule:: oci.capacity_management.models
+
+.. autoclass:: OccOverviewSummary
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/database_management.rst b/docs/api/database_management.rst
index bb039c42d..4ff93db69 100644
--- a/docs/api/database_management.rst
+++ b/docs/api/database_management.rst
@@ -119,6 +119,7 @@ Database Management
oci.database_management.models.CursorCacheStatementSummary
oci.database_management.models.DataAccessContainerCollection
oci.database_management.models.DataAccessContainerSummary
+ oci.database_management.models.DataPoints
oci.database_management.models.DatabaseConnectionCredentailsByName
oci.database_management.models.DatabaseConnectionCredentials
oci.database_management.models.DatabaseConnectionCredentialsByDetails
@@ -150,6 +151,7 @@ Database Management
oci.database_management.models.DatabaseTimeAggregateMetrics
oci.database_management.models.DatabaseUsageMetrics
oci.database_management.models.Datafile
+ oci.database_management.models.DataguardPerformanceMetrics
oci.database_management.models.DbManagementAnalyticsMetric
oci.database_management.models.DbManagementPrivateEndpoint
oci.database_management.models.DbManagementPrivateEndpointCollection
@@ -381,6 +383,9 @@ Database Management
oci.database_management.models.PatchMergeInstruction
oci.database_management.models.PdbMetrics
oci.database_management.models.PdbStatusDetails
+ oci.database_management.models.PeerDatabaseMetrics
+ oci.database_management.models.PerformanceMetrics
+ oci.database_management.models.PerformanceMetricsData
oci.database_management.models.PreferredCredential
oci.database_management.models.PreferredCredentialCollection
oci.database_management.models.PreferredCredentialSummary
diff --git a/docs/api/database_management/models/oci.database_management.models.DataPoints.rst b/docs/api/database_management/models/oci.database_management.models.DataPoints.rst
new file mode 100644
index 000000000..c6643bf91
--- /dev/null
+++ b/docs/api/database_management/models/oci.database_management.models.DataPoints.rst
@@ -0,0 +1,11 @@
+DataPoints
+==========
+
+.. currentmodule:: oci.database_management.models
+
+.. autoclass:: DataPoints
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/database_management/models/oci.database_management.models.DataguardPerformanceMetrics.rst b/docs/api/database_management/models/oci.database_management.models.DataguardPerformanceMetrics.rst
new file mode 100644
index 000000000..bcb42f91b
--- /dev/null
+++ b/docs/api/database_management/models/oci.database_management.models.DataguardPerformanceMetrics.rst
@@ -0,0 +1,11 @@
+DataguardPerformanceMetrics
+===========================
+
+.. currentmodule:: oci.database_management.models
+
+.. autoclass:: DataguardPerformanceMetrics
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/database_management/models/oci.database_management.models.PeerDatabaseMetrics.rst b/docs/api/database_management/models/oci.database_management.models.PeerDatabaseMetrics.rst
new file mode 100644
index 000000000..d5e0fb2a0
--- /dev/null
+++ b/docs/api/database_management/models/oci.database_management.models.PeerDatabaseMetrics.rst
@@ -0,0 +1,11 @@
+PeerDatabaseMetrics
+===================
+
+.. currentmodule:: oci.database_management.models
+
+.. autoclass:: PeerDatabaseMetrics
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/database_management/models/oci.database_management.models.PerformanceMetrics.rst b/docs/api/database_management/models/oci.database_management.models.PerformanceMetrics.rst
new file mode 100644
index 000000000..903def35d
--- /dev/null
+++ b/docs/api/database_management/models/oci.database_management.models.PerformanceMetrics.rst
@@ -0,0 +1,11 @@
+PerformanceMetrics
+==================
+
+.. currentmodule:: oci.database_management.models
+
+.. autoclass:: PerformanceMetrics
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/database_management/models/oci.database_management.models.PerformanceMetricsData.rst b/docs/api/database_management/models/oci.database_management.models.PerformanceMetricsData.rst
new file mode 100644
index 000000000..df058ffb1
--- /dev/null
+++ b/docs/api/database_management/models/oci.database_management.models.PerformanceMetricsData.rst
@@ -0,0 +1,11 @@
+PerformanceMetricsData
+======================
+
+.. currentmodule:: oci.database_management.models
+
+.. autoclass:: PerformanceMetricsData
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal.rst b/docs/api/demand_signal.rst
new file mode 100644
index 000000000..bfab40723
--- /dev/null
+++ b/docs/api/demand_signal.rst
@@ -0,0 +1,38 @@
+Demand Signal
+=============
+
+.. autosummary::
+ :toctree: demand_signal/client
+ :nosignatures:
+ :template: autosummary/service_client.rst
+
+ oci.demand_signal.OccDemandSignalClient
+ oci.demand_signal.OccDemandSignalClientCompositeOperations
+
+--------
+ Models
+--------
+
+.. autosummary::
+ :toctree: demand_signal/models
+ :nosignatures:
+ :template: autosummary/model_class.rst
+
+ oci.demand_signal.models.ChangeOccDemandSignalCompartmentDetails
+ oci.demand_signal.models.CreateOccDemandSignalDetails
+ oci.demand_signal.models.OccDemandSignal
+ oci.demand_signal.models.OccDemandSignalCollection
+ oci.demand_signal.models.OccDemandSignalData
+ oci.demand_signal.models.OccDemandSignalSummary
+ oci.demand_signal.models.OccDemandSignalValue
+ oci.demand_signal.models.PatchInsertInstruction
+ oci.demand_signal.models.PatchInsertMultipleInstruction
+ oci.demand_signal.models.PatchInstruction
+ oci.demand_signal.models.PatchMergeInstruction
+ oci.demand_signal.models.PatchMoveInstruction
+ oci.demand_signal.models.PatchOccDemandSignalDetails
+ oci.demand_signal.models.PatchProhibitInstruction
+ oci.demand_signal.models.PatchRemoveInstruction
+ oci.demand_signal.models.PatchReplaceInstruction
+ oci.demand_signal.models.PatchRequireInstruction
+ oci.demand_signal.models.UpdateOccDemandSignalDetails
diff --git a/docs/api/demand_signal/client/oci.demand_signal.OccDemandSignalClient.rst b/docs/api/demand_signal/client/oci.demand_signal.OccDemandSignalClient.rst
new file mode 100644
index 000000000..a90ac2628
--- /dev/null
+++ b/docs/api/demand_signal/client/oci.demand_signal.OccDemandSignalClient.rst
@@ -0,0 +1,8 @@
+OccDemandSignalClient
+=====================
+
+.. currentmodule:: oci.demand_signal
+
+.. autoclass:: OccDemandSignalClient
+ :special-members: __init__
+ :members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/client/oci.demand_signal.OccDemandSignalClientCompositeOperations.rst b/docs/api/demand_signal/client/oci.demand_signal.OccDemandSignalClientCompositeOperations.rst
new file mode 100644
index 000000000..17fce3d3b
--- /dev/null
+++ b/docs/api/demand_signal/client/oci.demand_signal.OccDemandSignalClientCompositeOperations.rst
@@ -0,0 +1,8 @@
+OccDemandSignalClientCompositeOperations
+========================================
+
+.. currentmodule:: oci.demand_signal
+
+.. autoclass:: OccDemandSignalClientCompositeOperations
+ :special-members: __init__
+ :members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.ChangeOccDemandSignalCompartmentDetails.rst b/docs/api/demand_signal/models/oci.demand_signal.models.ChangeOccDemandSignalCompartmentDetails.rst
new file mode 100644
index 000000000..2826d593a
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.ChangeOccDemandSignalCompartmentDetails.rst
@@ -0,0 +1,11 @@
+ChangeOccDemandSignalCompartmentDetails
+=======================================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: ChangeOccDemandSignalCompartmentDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.CreateOccDemandSignalDetails.rst b/docs/api/demand_signal/models/oci.demand_signal.models.CreateOccDemandSignalDetails.rst
new file mode 100644
index 000000000..8a772233c
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.CreateOccDemandSignalDetails.rst
@@ -0,0 +1,11 @@
+CreateOccDemandSignalDetails
+============================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: CreateOccDemandSignalDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignal.rst b/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignal.rst
new file mode 100644
index 000000000..e41874cc0
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignal.rst
@@ -0,0 +1,11 @@
+OccDemandSignal
+===============
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: OccDemandSignal
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignalCollection.rst b/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignalCollection.rst
new file mode 100644
index 000000000..9c81488b2
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignalCollection.rst
@@ -0,0 +1,11 @@
+OccDemandSignalCollection
+=========================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: OccDemandSignalCollection
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignalData.rst b/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignalData.rst
new file mode 100644
index 000000000..74a09e8e9
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignalData.rst
@@ -0,0 +1,11 @@
+OccDemandSignalData
+===================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: OccDemandSignalData
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignalSummary.rst b/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignalSummary.rst
new file mode 100644
index 000000000..f23fc7689
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignalSummary.rst
@@ -0,0 +1,11 @@
+OccDemandSignalSummary
+======================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: OccDemandSignalSummary
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignalValue.rst b/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignalValue.rst
new file mode 100644
index 000000000..c0dda99eb
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.OccDemandSignalValue.rst
@@ -0,0 +1,11 @@
+OccDemandSignalValue
+====================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: OccDemandSignalValue
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.PatchInsertInstruction.rst b/docs/api/demand_signal/models/oci.demand_signal.models.PatchInsertInstruction.rst
new file mode 100644
index 000000000..7cb9ad1ee
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.PatchInsertInstruction.rst
@@ -0,0 +1,11 @@
+PatchInsertInstruction
+======================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: PatchInsertInstruction
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.PatchInsertMultipleInstruction.rst b/docs/api/demand_signal/models/oci.demand_signal.models.PatchInsertMultipleInstruction.rst
new file mode 100644
index 000000000..c2a50c1dd
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.PatchInsertMultipleInstruction.rst
@@ -0,0 +1,11 @@
+PatchInsertMultipleInstruction
+==============================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: PatchInsertMultipleInstruction
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.PatchInstruction.rst b/docs/api/demand_signal/models/oci.demand_signal.models.PatchInstruction.rst
new file mode 100644
index 000000000..469de8e0b
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.PatchInstruction.rst
@@ -0,0 +1,11 @@
+PatchInstruction
+================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: PatchInstruction
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.PatchMergeInstruction.rst b/docs/api/demand_signal/models/oci.demand_signal.models.PatchMergeInstruction.rst
new file mode 100644
index 000000000..460098e5a
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.PatchMergeInstruction.rst
@@ -0,0 +1,11 @@
+PatchMergeInstruction
+=====================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: PatchMergeInstruction
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.PatchMoveInstruction.rst b/docs/api/demand_signal/models/oci.demand_signal.models.PatchMoveInstruction.rst
new file mode 100644
index 000000000..344ff93f2
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.PatchMoveInstruction.rst
@@ -0,0 +1,11 @@
+PatchMoveInstruction
+====================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: PatchMoveInstruction
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.PatchOccDemandSignalDetails.rst b/docs/api/demand_signal/models/oci.demand_signal.models.PatchOccDemandSignalDetails.rst
new file mode 100644
index 000000000..f5ec90f2b
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.PatchOccDemandSignalDetails.rst
@@ -0,0 +1,11 @@
+PatchOccDemandSignalDetails
+===========================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: PatchOccDemandSignalDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.PatchProhibitInstruction.rst b/docs/api/demand_signal/models/oci.demand_signal.models.PatchProhibitInstruction.rst
new file mode 100644
index 000000000..df281262c
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.PatchProhibitInstruction.rst
@@ -0,0 +1,11 @@
+PatchProhibitInstruction
+========================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: PatchProhibitInstruction
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.PatchRemoveInstruction.rst b/docs/api/demand_signal/models/oci.demand_signal.models.PatchRemoveInstruction.rst
new file mode 100644
index 000000000..d3227f642
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.PatchRemoveInstruction.rst
@@ -0,0 +1,11 @@
+PatchRemoveInstruction
+======================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: PatchRemoveInstruction
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.PatchReplaceInstruction.rst b/docs/api/demand_signal/models/oci.demand_signal.models.PatchReplaceInstruction.rst
new file mode 100644
index 000000000..62ed0a45a
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.PatchReplaceInstruction.rst
@@ -0,0 +1,11 @@
+PatchReplaceInstruction
+=======================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: PatchReplaceInstruction
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.PatchRequireInstruction.rst b/docs/api/demand_signal/models/oci.demand_signal.models.PatchRequireInstruction.rst
new file mode 100644
index 000000000..3cfc92301
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.PatchRequireInstruction.rst
@@ -0,0 +1,11 @@
+PatchRequireInstruction
+=======================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: PatchRequireInstruction
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/demand_signal/models/oci.demand_signal.models.UpdateOccDemandSignalDetails.rst b/docs/api/demand_signal/models/oci.demand_signal.models.UpdateOccDemandSignalDetails.rst
new file mode 100644
index 000000000..68f46ad24
--- /dev/null
+++ b/docs/api/demand_signal/models/oci.demand_signal.models.UpdateOccDemandSignalDetails.rst
@@ -0,0 +1,11 @@
+UpdateOccDemandSignalDetails
+============================
+
+.. currentmodule:: oci.demand_signal.models
+
+.. autoclass:: UpdateOccDemandSignalDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/landing.rst b/docs/api/landing.rst
index b5518ea61..ded450eae 100644
--- a/docs/api/landing.rst
+++ b/docs/api/landing.rst
@@ -147,6 +147,7 @@ API Reference
* :doc:`Notification Data Plane `
* :doc:`Object Storage `
* :doc:`Ocb Agent Svc `
+* :doc:`Occ Demand Signal `
* :doc:`Occ Metrics `
* :doc:`Oce Instance `
* :doc:`Oda `
@@ -307,6 +308,7 @@ API Reference
database_management
database_migration
database_tools
+ demand_signal
desktops
devops
disaster_recovery
diff --git a/docs/api/signing.rst b/docs/api/signing.rst
index 7f4bed0b2..ead73e45f 100644
--- a/docs/api/signing.rst
+++ b/docs/api/signing.rst
@@ -25,6 +25,35 @@ EnvironmentError exception.
# A populated config is not needed when using a Resource Principals signer
db_client = oci.database.DatabaseClient({}, signer=resource_principals_signer)
+=========================
+OKE Workload Auth Signer
+=========================
+
+The OKE Workload Auth Signer is a signer that grants an entire workload (an application running on Kubernetes clusters)
+access to OCI resources and services using the OKE Workload Identity. It can be retrieved by
+`oci.auth.signers.get_oke_workload_identity_resource_principal_signer`. The retrieved signer can then be used when
+initializing a client.
+
+The default path for retrieving the kubernetes service account token is `/var/run/secrets/kubernetes.io/serviceaccount/token`.
+If you have a different kubernetes service account token path, use the `service_account_token_path` parameter
+while retrieving the signer. If you want to directly pass in your kubernetes service account token, use the
+`service_account_token` parameter while retrieving the signer.
+
+.. code-block:: python
+
+ oke_workload_signer = oci.auth.signers.get_oke_workload_identity_resource_principal_signer()
+
+ # If you have a kubernetes service account token path different from the default path then:
+ # token_path = "path_to_your_token_file"
+ # oke_workload_signer = oci.auth.signers.get_oke_workload_identity_resource_principal_signer(service_account_token_path=token_path)
+
+ # If you want to directly pass in the kubernetes service account token then:
+ # token_string = "your_token_string"
+ # oke_workload_signer = oci.auth.signers.get_oke_workload_identity_resource_principal_signer(service_account_token=token_string)
+
+ # A populated config is not needed when using the OKE Workload Auth signer
+ container_engine_client = oci.container_engine.ContainerEngineClient({}, signer=oke_workload_signer)
+
===================
Additional Signers
===================
diff --git a/examples/oci_capacity_reporter/README.md b/examples/oci_capacity_reporter/README.md
new file mode 100644
index 000000000..bb4739297
--- /dev/null
+++ b/examples/oci_capacity_reporter/README.md
@@ -0,0 +1,117 @@
+## OCI Capacity Reporter - Oracle Cloud Infrastructure capacity reporter
+
+A simple, tkinter-based UI using the OCI Python SDK that allows the user to inspect available shapes within their OCI tenant and generate available
+capacity reports based on the caller's OCI config definition and current limits see [doc](https://docs.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm) for more information.
+
+**DISCLAIMER - This is not an official Oracle application, It does not supported by Oracle Support.
+
+**Developed by Derek T. Chambers-Boucher, 2024 Contribution: Adi Zohar**
+
+## Modules Included:
+- oci.identity.IdentityClient
+- oci.core.ComputeClient
+
+## Executing using your PC (Application use GUI):
+```
+1. install python3
+
+2. install oci sdk package and oci cli for config
+ pip3 install --user oci oci-cli
+
+3. setup oci config for authentication
+ oci setup config
+
+4. download the app - oci_capacity_reporter_gui.py
+
+5. run oci_capacity_reporter_gui.py
+ python3 oci_capacity_reporter_gui.py
+```
+
+## Installation of Python 3 incase you don't have Python3 installed:
+Please follow [Python Documentation](https://docs.python.org/3/using/index.html)
+
+## Install OCI SDK Packages:
+Please follow [Oracle Python SDK Documentation](https://github.com/oracle/oci-python-sdk)
+
+
+## Setup connectivity using User
+
+```
+1. Login to your OCI Cloud console
+
+2. Create new group : ShowRewardsGroup
+
+3. Create new Policy: CapacityReporterGroup with Statements:
+ Allow group CapacityReporterGroup to inspect tenancies in tenancy
+ Allow group CapacityReporterGroup to inspect compartments in tenancy
+ Allow group CapacityReporterGroup to inspect instances in tenancy
+ Allow group CapacityReporterGroup to manage compute-capacity-reports in tenancy
+
+4. Create new User : CapacityReport -> Add to CapacityReporterGroup group
+
+5. Config OCI config file - ~/.oci/config
+ Please follow SDK config documentation - https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm
+```
+
+Execute
+
+```
+$ python3 oci_capacity_reporter_gui.py -help
+
+options:
+ -h, --help show this help message and exit
+ -c CONFIG_FILE OCI CLI Config file
+ -t CONFIG_PROFILE Config Profile inside the config file
+ -p PROXY Set Proxy (i.e. www-proxy-server.com:80)
+ -ip Use Instance Principals for Authentication
+```
+
+## Check Other Projects
+
+- [ShowOCI](https://github.com/oracle/oci-python-sdk/tree/master/examples/showoci)
+
+- [ShowUsage](https://github.com/oracle/oci-python-sdk/tree/master/examples/showusage)
+
+- [ShowSubscription](https://github.com/oracle/oci-python-sdk/tree/master/examples/showsubscription)
+
+- [ShowRewards](https://github.com/oracle/oci-python-sdk/tree/master/examples/showrewards)
+
+- [List Resources in Tenancy](https://github.com/oracle/oci-python-sdk/tree/master/examples/list_resources_in_tenancy)
+
+- [Object Storage Tools](https://github.com/oracle/oci-python-sdk/tree/master/examples/object_storage)
+
+- [Tag Resources in Tenancy](https://github.com/oracle/oci-python-sdk/tree/master/examples/tag_resources_in_tenancy)
+
+- [Usage2ADW](https://github.com/oracle-samples/usage-reports-to-adw)
+
+
+## Below example of reports from demo tenancy (random info generated)
+
+```
+########################################################################################################################
+# OCI Capacity Reporter #
+########################################################################################################################
+Author : Derek T. Chambers-Boucher
+Disclaimer : This is not an official Oracle application, It does not supported by Oracle, It should NOT be used for utilization calculation purposes !
+Machine : host-mac (arm64)
+App Version : 24.05.21
+OCI SDK Version : 2.123.0
+Python Version : 3.10.6
+Authentication : Config File
+Date/Time : 2024-05-21 16:48:20
+Command Line :
+
+Connecting to Identity Service...
+
+Loaded 6 regions.
+Initiating GUI...
+
+Loaded 98 shapes
+Set region to 'us-ashburn-1' with 3 ADs
+Loaded 46 shapes for AD dbTR:US-ASHBURN-AD-1
+Running capacity report for BM.DenseIO.E4.128
+Good Bye.
+
+```
+![img1](img1.png)
+![img2](img2.png)
diff --git a/examples/oci_capacity_reporter/img1.png b/examples/oci_capacity_reporter/img1.png
new file mode 100644
index 000000000..43dcd749b
Binary files /dev/null and b/examples/oci_capacity_reporter/img1.png differ
diff --git a/examples/oci_capacity_reporter/img2.png b/examples/oci_capacity_reporter/img2.png
new file mode 100644
index 000000000..92863847b
Binary files /dev/null and b/examples/oci_capacity_reporter/img2.png differ
diff --git a/examples/oci_capacity_reporter/oci_capacity_reporter_gui.py b/examples/oci_capacity_reporter/oci_capacity_reporter_gui.py
new file mode 100644
index 000000000..9766b6e5d
--- /dev/null
+++ b/examples/oci_capacity_reporter/oci_capacity_reporter_gui.py
@@ -0,0 +1,589 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+###########################################################################################
+# oci_capacity_reporter_gui.py
+#
+# @author: Derek T. Chambers-Boucher, May 21 2024
+# @contributors: Adi Zohar
+#
+# Supports Python 3
+###########################################################################################
+# Info:
+#
+# A simple, tkinter-based UI using the OCI Python SDK that allows the user to
+# inspect available shapes within their OCI tenant and generate available
+# capacity reports based on the caller's OCI config definition and current limits
+# see https://docs.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm) for more information.
+#
+###########################################################################################
+# Application Command line parameters
+#
+# -c config - OCI CLI Config
+# -t profile - profile inside the config file
+# -p proxy - Set Proxy (i.e. www-proxy-server.com:80)
+# -ip - Use Instance Principals for Authentication
+#
+###########################################################################################
+# Connectivity:
+# Using User Authentication
+# $HOME/.oci/config, please follow - https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm
+# OCI user part of CapacityReporterGroup group with below Policy rules:
+# Allow group CapacityReporterGroup to inspect tenancies in tenancy
+# Allow group CapacityReporterGroup to inspect compartments in tenancy
+# Allow group CapacityReporterGroup to inspect instances in tenancy
+# Allow group CapacityReporterGroup to manage compute-capacity-reports in tenancy
+###########################################################################################
+# Modules Included:
+# - oci.identity.IdentityClient
+# - oci.core.ComputeClient
+#
+# APIs Used:
+# - IdentityClient.get_tenancy - Policy TENANCY_INSPECT
+# - IdentityClient.list_region_subscriptions - Policy TENANCY_INSPECT
+# - IdentityClient.list_availability_domains - Policy COMPARTMENT_INSPECT
+# - ComputeClient.list_shapes - Policy INSTANCE_INSPECT
+# - ComputeClient.create_compute_capacity_report - Policy COMPUTE_CAPACITY_REPORT_CREATE
+###########################################################################################
+
+import datetime
+import argparse
+import platform
+import oci
+import json
+import sys
+import tkinter as tk
+import tkinter.ttk as ttk
+from tkinter import scrolledtext
+from tkinter import simpledialog
+from tkinter import messagebox
+
+
+##########################################################################
+# class OCICapacityReporter
+##########################################################################
+class OCICapacityReporter(object):
+ version = "24.05.21"
+
+ # Class Screen Sizes
+ TK_SHAPE_LIST_HEIGHT = 30
+ TK_INFO_TEXT_WIDTH = 140
+
+ # Class Parameters
+ regions = []
+ allShapes = []
+ allADs = []
+ config = {}
+ signer = None
+ proxy = None
+ tenancy = None
+ tenancy_id = ""
+ tenancy_home_region = ""
+
+ # Screen Components
+ master = None
+ regionVar = None
+ adListBox = None
+ shapeListBox = None
+ infoTextBox = None
+ tenantInfoTextBox = None
+
+ ##########################################################################
+ # init class
+ # Creates a new data object
+ ##########################################################################
+ def __init__(self):
+ pass
+
+ ##########################################################################
+ # main execution
+ ##########################################################################
+ def execute(self):
+ self.main_input()
+ self.getSubscribedRegions()
+ self.main_ui_setup()
+ self.setTenantInfoBox()
+ self.master.mainloop()
+ print("Good Bye.\n")
+
+ ##########################################################################
+ # Get the currently subscribed regions
+ # Choosing an unsubscribed region will cause an Authentication Exception
+ ##########################################################################
+ def getSubscribedRegions(self):
+
+ print("\nConnecting to Identity Service...\n")
+ identity_client = oci.identity.IdentityClient(self.config, signer=self.signer)
+ if self.proxy:
+ identity_client.base_client.session.proxies = {'https': self.proxy}
+
+ self.tenancy = identity_client.get_tenancy(self.tenancy_id).data
+ regionList = identity_client.list_region_subscriptions(self.tenancy_id).data
+
+ # Get Home Region
+ for reg in regionList:
+ if reg.is_home_region:
+ self.tenancy_home_region = str(reg.region_name)
+
+ print("Tenant Name : " + str(self.tenancy.name))
+ print("Tenant Id : " + self.tenancy.id)
+ print("Home Region : " + self.tenancy_home_region)
+
+ # Produce Region List
+ self.regions = [r.region_name for r in regionList]
+ self.regions.sort()
+ print(f"\nLoaded {len(self.regions)} regions.")
+
+ ##########################################################################
+ # Get the selected region and set it in the OCI configuration
+ ##########################################################################
+ def get_region(self, *arg):
+ selectedRegion = str(self.regionVar.get())
+ self.change_region(selectedRegion)
+
+ ##########################################################################
+ # Simple error messaging
+ ##########################################################################
+ def error_handler(self, error):
+ messagebox.showerror('Error', str(error), parent=self.master)
+ print(str(error))
+
+ ##########################################################################
+ # Change selected region
+ ##########################################################################
+ def change_region(self, region):
+ try:
+ # Set Region
+ self.config["region"] = region
+ identity_client = oci.identity.IdentityClient(self.config, signer=self.signer)
+ if self.proxy:
+ identity_client.base_client.session.proxies = {'https': self.proxy}
+
+ # Call list_availability_domains
+ availability_domains = identity_client.list_availability_domains(compartment_id=self.tenancy_id).data
+ availability_domains_names = [ad.name for ad in availability_domains]
+
+ # Set ADs on Screen
+ var = tk.Variable(value=availability_domains_names)
+ self.adListBox.selection_clear(0, tk.END)
+ self.shapeListBox.selection_clear(0, tk.END)
+ self.adListBox.configure(listvariable=var)
+ self.allADs = availability_domains_names
+ self.get_shapes()
+ print(f"Set region to '{region}' with {len(availability_domains_names)} ADs")
+
+ except oci.exceptions.ServiceError as e:
+ self.error_handler(e)
+ except Exception as e:
+ self.error_handler(e)
+
+ ##########################################################################
+ # Get shapes available in region for tenancy
+ ##########################################################################
+ def get_shapes(self, ad=None):
+ try:
+ core_client = oci.core.ComputeClient(self.config, signer=self.signer)
+ if self.proxy:
+ core_client.base_client.session.proxies = {'https': self.proxy}
+
+ # Call list_shapes
+ self.allShapes = core_client.list_shapes(compartment_id=self.tenancy_id, availability_domain=ad).data
+
+ # Sort Unique the shapes
+ listShapes = [s.shape for s in self.allShapes]
+ UniqueShapes = list(set(listShapes))
+ UniqueShapes.sort()
+ var = tk.Variable(value=UniqueShapes)
+ self.shapeListBox.configure(listvariable=var)
+ print(f"Loaded {len(UniqueShapes)} shapes" + (f" for AD {ad}" if ad else ""))
+
+ except Exception as e:
+ self.error_handler(e)
+
+ ##########################################################################
+ # Extract the shape object details from the returned list
+ ##########################################################################
+ def get_shape_details(self, selShape):
+ return list(filter(lambda x: x.shape == selShape, self.allShapes))[0]
+
+ ##########################################################################
+ # Set the text in the infoTextBox Widget
+ ##########################################################################
+ def setInfoTextBox(self, content=None):
+ self.infoTextBox.configure(state='normal')
+ self.infoTextBox.delete(1.0, tk.END)
+ if content:
+ self.infoTextBox.insert(tk.INSERT, str(content))
+ self.infoTextBox.configure(state='disabled')
+
+ ##########################################################################
+ # Set the text in the Tenant Info
+ ##########################################################################
+ def setTenantInfoBox(self):
+ val = "Tenant Name : " + self.tenancy.name + "\n"
+ val += "Tenant Id : " + self.tenancy.id + "\n"
+ val += "Home Region : " + self.tenancy_home_region + "\n"
+ val += "Subscribed Regions : " + ','.join(x for x in self.regions)
+ self.tenantInfoTextBox.configure(state='normal')
+ self.tenantInfoTextBox.insert(tk.INSERT, val)
+
+ ##########################################################################
+ # Get the selected shape details
+ ##########################################################################
+ def get_shape_info(self, displayShapeDetails=True):
+ try:
+ selShape = self.shapeListBox.get(self.shapeListBox.curselection())
+ if displayShapeDetails:
+ shape_details = self.get_shape_details(selShape)
+ self.setInfoTextBox(shape_details)
+ return selShape
+ except Exception as e:
+ self.error_handler(e)
+
+ ##########################################################################
+ # Generate the Capacity Report for the selected shape
+ ##########################################################################
+ def getCapacityReport(self):
+
+ shape_details = self.get_shape_info(displayShapeDetails=False)
+ shape = self.get_shape_details(shape_details)
+ ocpus = None
+ mem = None
+ nvme = None
+
+ print(f"Running capacity report for {str(shape.shape)}")
+
+ reportstring = "Availability for Shape: " + str(shape.shape)
+ flexreportstring = ""
+
+ # Check if Flex Shape
+ if 'Flex' in shape.shape:
+ if "DenseIO" not in shape.shape:
+ minOCPU = shape.ocpu_options.min
+ maxOCPU = shape.ocpu_options.max
+ maxShapeMem = shape.memory_options.max_in_g_bs
+ minMemPerOCPU = shape.memory_options.min_per_ocpu_in_gbs
+ maxMemPerOCPU = shape.memory_options.max_per_ocpu_in_gbs
+ elif "DenseIO.E4" in shape.shape:
+ minOCPU = 8
+ maxOCPU = 32
+ maxShapeMem = 512
+ minMemPerOCPU = 16
+ maxMemPerOCPU = 16
+ elif "DenseIO.E5" in shape.shape:
+ minOCPU = 8
+ maxOCPU = 48
+ maxShapeMem = 576
+ minMemPerOCPU = 12
+ maxMemPerOCPU = 12
+
+ ocpuLabelText = "Number of OCPUs (" + str(minOCPU) + " - " + str(maxOCPU) + "):"
+
+ ocpus = simpledialog.askinteger("Flex Shape Capacity Configuration", ocpuLabelText, parent=self.master, minvalue=minOCPU, maxvalue=maxOCPU)
+
+ if ocpus:
+ memCalc = maxMemPerOCPU * ocpus
+ maxConfigMem = maxShapeMem if memCalc > maxShapeMem else (memCalc)
+ minConfigMem = minMemPerOCPU * ocpus
+
+ memLabelText = "Amount of Memory (" + str(minConfigMem) + " - " + str(maxConfigMem) + "):"
+ mem = simpledialog.askinteger("Flex Shape Capacity Configuration", memLabelText, parent=self.master, minvalue=minConfigMem, maxvalue=maxConfigMem)
+ if mem:
+ flexreportstring = " with " + str(ocpus) + " OCPU and " + str(mem) + " GB mem"
+ else:
+ raise ValueError("Flex shapes require a configuration of ocpus and mem.")
+ else:
+ raise ValueError("Flex shapes require a configuration of ocpus and mem.")
+
+ # DenseIO Flex shapes are another exceptional use case. There are specific,
+ # fixed configurations that are acceptable.
+ if ("DenseIO" in shape.shape) and ("Flex" in shape.shape):
+ if "E4" in shape.shape:
+ # E4 OCPU count can be 8, 16 or 32
+ # and mem as 128, 256, 512 respectively
+ # and an nvme drive for every 8 OCPUs
+ factorE4 = ((ocpus - 1) // 8) + 1
+ if factorE4 == 3:
+ # DenseIO.E4.Flex cannot have 24 OCPUs
+ factorE4 = 4
+ ocpus = factorE4 * 8
+ mem = factorE4 * 128
+ nvme = factorE4
+ elif "E5" in shape.shape:
+ # E5 OCPU count can be 8, 16, 24, 32, 40, 48
+ # and mem 96, 192, 288, 384, 480, 576 respectively
+ # and an nvme drive for every 8 OCPUs
+ factorE5 = ((ocpus - 1) // 8) + 1
+ ocpus = factorE5 * 8
+ mem = factorE5 * 96
+ nvme = factorE5
+
+ flexreportstring = " with " + str(ocpus) + " OCPU, " + str(mem) + " GB mem and " + str(nvme) + " NVME"
+
+ reportstring += flexreportstring + "\n\n"
+
+ # Get selected ADs
+ report_time = ""
+ is_data_available = False
+
+ # Iterate through selected ADs and generate capacity report
+ for a in self.allADs:
+ report = self.getCapacityDetails(shape=shape.shape, ad=a, ocpu=ocpus, mem=mem, nvme=nvme)
+
+ if report:
+ is_data_available = True
+ report_time = str(report.time_created)
+
+ for sa in report.shape_availabilities:
+ fd = str(sa.fault_domain)
+ status = str(sa.availability_status)
+ if sa.available_count:
+ reportstring += str('{:>14}'.format(sa.available_count)) + " available"
+ else:
+ reportstring += " " + status.rjust(22)
+
+ reportstring += " in "
+ reportstring += report.availability_domain + ":"
+ reportstring += (fd if fd != "None" else "ACROSS ALL FAULT DOMAINS") + "\n"
+
+ reportstring += "\n"
+
+ # Display capacity report in infoTextBox
+ if is_data_available:
+ reportstring += "Time created: " + report_time[0:16] + "\n"
+ self.setInfoTextBox(reportstring)
+
+ ##########################################################################
+ # Get Capacity Report
+ ##########################################################################
+ def getCapacityDetails(self, shape, ad, ocpu=None, mem=None, nvme=None):
+
+ # Send the request to service, some parameters are not required, see API doc for more info
+ try:
+ shapeConfig = None
+ if (ocpu and mem and nvme):
+ print(f"Running Capacity Report {ad} on {shape} with {str(ocpu)} OCPUs, {str(mem)} Memory and {str(nvme)} NVME")
+ shapeConfig = oci.core.models.CapacityReportInstanceShapeConfig(ocpus=float(ocpu), memory_in_gbs=float(mem), nvmes=float(nvme))
+
+ elif (ocpu and mem):
+ print(f"Running Capacity Report {ad} on {shape} with {str(ocpu)} OCPUs, {str(mem)} Memory")
+ shapeConfig = oci.core.models.CapacityReportInstanceShapeConfig(ocpus=float(ocpu), memory_in_gbs=float(mem))
+
+ core_client = oci.core.ComputeClient(self.config, signer=self.signer)
+ if self.proxy:
+ core_client.base_client.session.proxies = {'https': self.proxy}
+
+ # Create create_compute_capacity_report_details Object
+ create_compute_capacity_report_details = oci.core.models.CreateComputeCapacityReportDetails(
+ compartment_id=self.tenancy_id,
+ availability_domain=ad,
+ shape_availabilities=[
+ oci.core.models.CreateCapacityReportShapeAvailabilityDetails(
+ instance_shape=shape,
+ instance_shape_config=shapeConfig
+ ),
+ oci.core.models.CreateCapacityReportShapeAvailabilityDetails(
+ instance_shape=shape,
+ fault_domain="FAULT-DOMAIN-1",
+ instance_shape_config=shapeConfig
+ ),
+ oci.core.models.CreateCapacityReportShapeAvailabilityDetails(
+ instance_shape=shape,
+ fault_domain="FAULT-DOMAIN-2",
+ instance_shape_config=shapeConfig
+ ),
+ oci.core.models.CreateCapacityReportShapeAvailabilityDetails(
+ instance_shape=shape,
+ fault_domain="FAULT-DOMAIN-3",
+ instance_shape_config=shapeConfig
+ )
+ ])
+
+ # run report
+ create_compute_capacity_report_response = core_client.create_compute_capacity_report(
+ create_compute_capacity_report_details
+ ).data
+
+ return create_compute_capacity_report_response
+
+ except oci.exceptions.ServiceError as e:
+ self.setInfoTextBox(json.dumps(e.message, indent='3'))
+ print(json.dumps(e.message, indent='3'))
+
+ ##########################################################################
+ # on Get Capacity Button
+ ##########################################################################
+ def on_get_capacity(self):
+ try:
+ self.getCapacityReport()
+ except ValueError as e:
+ self.error_handler(e)
+
+ ##########################################################################
+ # on AD selection get shapes
+ ##########################################################################
+ def onADSelect(self, eventAD):
+ try:
+ w = eventAD.widget
+ index = int(w.curselection()[0])
+ value = w.get(index)
+ self.shapeListBox.selection_clear(0, tk.END)
+ self.setInfoTextBox("Please select shape to continue.")
+ except IndexError:
+ value = None
+ finally:
+ self.get_shapes(value)
+
+ ##########################################################################
+ # on Shape selection get shape details
+ ##########################################################################
+ def onShapeSelect(self, eventShape):
+ self.get_shape_info(displayShapeDetails=True)
+
+ ##########################################################################
+ # Create signer for Authentication
+ # Input - config_profile and is_instance_principals
+ # Output - config and signer objects
+ ##########################################################################
+ def create_signer(self, config_file, config_profile, is_instance_principals):
+
+ # if instance principals authentications
+ if is_instance_principals:
+ try:
+ signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner()
+ config = {'region': signer.region, 'tenancy': signer.tenancy_id}
+ return config, signer
+
+ except Exception:
+ self.print_header("Error obtaining instance principals certificate, aborting", 0)
+ raise SystemExit
+
+ # -----------------------------
+ # config file authentication
+ # -----------------------------
+ else:
+ config = oci.config.from_file(
+ (config_file if config_file else oci.config.DEFAULT_LOCATION),
+ (config_profile if config_profile else oci.config.DEFAULT_PROFILE)
+ )
+ signer = oci.signer.Signer(
+ tenancy=config["tenancy"],
+ user=config["user"],
+ fingerprint=config["fingerprint"],
+ private_key_file_location=config.get("key_file"),
+ pass_phrase=oci.config.get_config_value_or_default(config, "pass_phrase"),
+ private_key_content=config.get("key_content")
+ )
+ return config, signer
+
+ ##########################################################################
+ # Print header centered
+ ##########################################################################
+ def print_header(self, name, category):
+ options = {0: 120, 1: 100, 2: 90, 3: 85}
+ chars = int(options[category])
+ print("")
+ print('#' * chars)
+ print("#" + name.center(chars - 2, " ") + "#")
+ print('#' * chars)
+
+ ##########################################################################
+ # Main Input
+ ##########################################################################
+ def main_input(self):
+ parser = argparse.ArgumentParser(usage=argparse.SUPPRESS, formatter_class=lambda prog: argparse.HelpFormatter(prog, max_help_position=80, width=150))
+ parser.add_argument('-c', default="", dest='config_file', help='OCI CLI Config file')
+ parser.add_argument('-t', default="", dest='config_profile', help='Config Profile inside the config file')
+ parser.add_argument('-p', default="", dest='proxy', help='Set Proxy (i.e. www-proxy-server.com:80) ')
+ parser.add_argument('-ip', action='store_true', default=False, dest='is_instance_principals', help='Use Instance Principals for Authentication')
+ cmd = parser.parse_args()
+
+ # Start print time info
+ self.print_header("OCI Capacity Reporter", 0)
+
+ print("Author : Derek T. Chambers-Boucher")
+ print("Contributer : Adi Zohar")
+ print("Disclaimer : This is not an official Oracle application, It does not supported by Oracle, It should NOT be used for utilization calculation purposes !")
+ print("Machine : " + platform.node() + " (" + platform.machine() + ")")
+ print("App Version : " + self.version)
+ print("OCI SDK Version : " + oci.version.__version__)
+ print("Python Version : " + platform.python_version())
+ print("Authentication : Config File")
+ print("Date/Time : " + str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
+ print("Command Line : " + ' '.join(x for x in sys.argv[1:]))
+
+ self.proxy = cmd.proxy
+ self.config, self.signer = self.create_signer(cmd.config_file, cmd.config_profile, cmd.is_instance_principals)
+ self.tenancy_id = self.config["tenancy"]
+
+ ##########################################################################
+ # Main UI
+ ##########################################################################
+ def main_ui_setup(self):
+
+ print("Initiating GUI...\n")
+
+ # creating main tkinter window/toplevel
+ self.master = tk.Tk()
+ self.master.title('OCI Capacity Reporter')
+
+ # create the region combobox
+ self.listADs = tk.Variable()
+ self.listShapes = tk.Variable()
+ self.regionVar = tk.StringVar()
+
+ # this will create a label widget
+ l1 = tk.Label(self.master, text="Region:")
+ l2 = tk.Label(self.master, text="ADs:")
+ l3 = tk.Label(self.master, text="Shapes:")
+ l4 = tk.Label(self.master, text="Tenant Info:")
+ l5 = tk.Label(self.master, text="Shape / Capacity Info:")
+
+ # grid method to arrange labels in respective
+ # rows and columns as specified
+ l1.grid(row=0, column=0, sticky='w', pady=2)
+ l2.grid(row=2, column=0, sticky='w', pady=2)
+ l3.grid(row=4, column=0, sticky='w', pady=2)
+ l4.grid(row=0, column=1, sticky='w', pady=2)
+ l5.grid(row=4, column=1, sticky='w', pady=2)
+
+ # region widget
+ self.regionChooser = ttk.Combobox(self.master, width=18, textvariable=self.regionVar)
+ self.regionChooser['values'] = self.regions
+ self.regionChooser['state'] = 'readonly'
+ self.regionVar.trace_add('write', self.get_region)
+
+ # entry widgets:
+ self.adListBox = tk.Listbox(self.master, listvariable=self.listADs, height=3, bd=1, selectmode='single')
+ self.adListBox.configure(exportselection=False)
+ self.shapeListBox = tk.Listbox(self.master, listvariable=self.listShapes, bd=1, height=self.TK_SHAPE_LIST_HEIGHT, yscrollcommand=True)
+ self.shapeListBox.configure(exportselection=False)
+ self.infoTextBox = scrolledtext.ScrolledText(self.master, width=self.TK_INFO_TEXT_WIDTH, bd=2, relief=tk.RAISED)
+ self.tenantInfoTextBox = scrolledtext.ScrolledText(self.master, height=2, width=self.TK_INFO_TEXT_WIDTH, bd=2, relief=tk.RAISED)
+
+ # this will arrange entry widgets
+ self.regionChooser.grid(row=1, column=0, sticky='w')
+ self.adListBox.grid(row=3, column=0, sticky='w', pady=2, padx=2)
+ self.shapeListBox.grid(row=5, column=0, sticky='nw', pady=2, padx=2)
+ self.infoTextBox.grid(row=5, column=1, sticky='nsew', pady=2, padx=2, rowspan=3, columnspan=20)
+ self.tenantInfoTextBox.grid(row=1, column=1, sticky='nsew', pady=2, padx=2, rowspan=3, columnspan=20)
+
+ # bind actions to widgets and buttons
+ ttk.Button(self.master, text='Get Shape Info', command=self.get_shape_info).grid(row=8, column=0, pady=2, padx=2)
+ ttk.Button(self.master, text='Get Capacity Report', command=self.on_get_capacity).grid(row=8, column=1, pady=2, padx=2)
+ ttk.Button(self.master, text='Exit', command=self.master.destroy).grid(row=8, column=2, pady=2, padx=2)
+ self.adListBox.bind('<>', self.onADSelect)
+ self.shapeListBox.bind('<>', self.onShapeSelect)
+
+ self.regionChooser.set(self.config["region"])
+ self.master.eval('tk::PlaceWindow . center')
+
+ self.setInfoTextBox("Please choose Availability Domain or Change Region to continue.")
+
+
+##########################################################################
+# Main
+##########################################################################
+cls = OCICapacityReporter()
+cls.execute()
diff --git a/examples/oke_workload_signer_example.py b/examples/oke_workload_signer_example.py
new file mode 100644
index 000000000..25895dedd
--- /dev/null
+++ b/examples/oke_workload_signer_example.py
@@ -0,0 +1,33 @@
+# coding: utf-8
+# Copyright (c) 2016, 2023, 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.
+
+import oci
+
+oke_workload_signer = oci.auth.signers.get_oke_workload_identity_resource_principal_signer()
+
+# If you have a kubernetes service account token path different from the default path then:
+# token_path = "path_to_your_token_file"
+# oke_workload_signer = oci.auth.signers.get_oke_workload_identity_resource_principal_signer(service_account_token_path=token_path)
+
+# If you want to directly pass in the kubernetes service account token then:
+# token_string = "your_token_string"
+# oke_workload_signer = oci.auth.signers.get_oke_workload_identity_resource_principal_signer(service_account_token=token_string)
+
+# A populated config is not needed when using the OKE Workload Auth signer
+container_engine_client = oci.container_engine.ContainerEngineClient({}, signer=oke_workload_signer)
+
+create_cluster_response = container_engine_client.create_cluster(
+ create_cluster_details=oci.container_engine.models.CreateClusterDetails(
+ name="name_of_your_cluster",
+ compartment_id="ocid_of_your_compartment",
+ vcn_id="ocid_of_your_vcn",
+ kubernetes_version="choice_of_kubernetes_version"
+ )
+)
+print(create_cluster_response.data)
+
+get_cluster_response = container_engine_client.get_cluster(
+ cluster_id="ocid_of_your_cluster_id"
+)
+print(get_cluster_response.data.lifecycle_state)
diff --git a/examples/showoci/README.md b/examples/showoci/README.md
index 75a537390..8ab184b01 100644
--- a/examples/showoci/README.md
+++ b/examples/showoci/README.md
@@ -44,6 +44,8 @@ Developed by Adi Zohar, 2018-2024, Contributors: Olaf Heimburger
- [Tag Resources in Tenancy](https://github.com/oracle/oci-python-sdk/tree/master/examples/tag_resources_in_tenancy)
+- [OCI Capacity Reporter](https://github.com/oracle/oci-python-sdk/tree/master/examples/oci_capacity_reporter)
+
- [Usage2ADW](https://github.com/oracle-samples/usage-reports-to-adw)
## ShowOCI
diff --git a/examples/showusage/README.md b/examples/showusage/README.md
index d211ed578..b919edb39 100644
--- a/examples/showusage/README.md
+++ b/examples/showusage/README.md
@@ -91,19 +91,21 @@ optional arguments:
## My Other Projects
-[1. ShowOCI](https://github.com/oracle/oci-python-sdk/tree/master/examples/showoci)
+- [ShowOCI](https://github.com/oracle/oci-python-sdk/tree/master/examples/showoci)
-[2. ShowSubscription](https://github.com/oracle/oci-python-sdk/tree/master/examples/showsubscription)
+- [ShowSubscription](https://github.com/oracle/oci-python-sdk/tree/master/examples/showsubscription)
-[3. ShowRewards](https://github.com/oracle/oci-python-sdk/tree/master/examples/showrewards)
+- [ShowRewards](https://github.com/oracle/oci-python-sdk/tree/master/examples/showrewards)
-[4. List Resources in Tenancy](https://github.com/oracle/oci-python-sdk/tree/master/examples/list_resources_in_tenancy)
+- [List Resources in Tenancy](https://github.com/oracle/oci-python-sdk/tree/master/examples/list_resources_in_tenancy)
-[5. Object Storage Tools](https://github.com/oracle/oci-python-sdk/tree/master/examples/object_storage)
+- [Object Storage Tools](https://github.com/oracle/oci-python-sdk/tree/master/examples/object_storage)
-[6. Tag Resources in Tenanct](https://github.com/oracle/oci-python-sdk/tree/master/examples/tag_resources_in_tenancy)
+- [Tag Resources in Tenanct](https://github.com/oracle/oci-python-sdk/tree/master/examples/tag_resources_in_tenancy)
-[7. Usage2ADW](https://github.com/oracle-samples/usage-reports-to-adw)
+- [Usage2ADW](https://github.com/oracle-samples/usage-reports-to-adw)
+
+- [OCI Capacity Reporter](https://github.com/oracle/oci-python-sdk/tree/master/examples/oci_capacity_reporter)
## Below example of reports from demo tenancy (random costs generated)
diff --git a/src/oci/__init__.py b/src/oci/__init__.py
index fda61ff48..05552b4f6 100644
--- a/src/oci/__init__.py
+++ b/src/oci/__init__.py
@@ -19,7 +19,7 @@
else:
__all__ = [
"BaseClient", "Error", "Request", "Response", "Signer", "config", "constants", "decorators", "exceptions", "regions", "wait_until", "pagination", "auth", "retry", "fips", "circuit_breaker", "alloy",
- "access_governance_cp", "adm", "ai_anomaly_detection", "ai_document", "ai_language", "ai_speech", "ai_vision", "analytics", "announcements_service", "apigateway", "apm_config", "apm_control_plane", "apm_synthetics", "apm_traces", "appmgmt_control", "artifacts", "audit", "autoscaling", "bastion", "bds", "blockchain", "budget", "capacity_management", "certificates", "certificates_management", "cims", "cloud_bridge", "cloud_guard", "cloud_migrations", "cluster_placement_groups", "compute_cloud_at_customer", "compute_instance_agent", "container_engine", "container_instances", "core", "dashboard_service", "data_catalog", "data_flow", "data_integration", "data_labeling_service", "data_labeling_service_dataplane", "data_safe", "data_science", "database", "database_management", "database_migration", "database_tools", "desktops", "devops", "disaster_recovery", "dns", "dts", "em_warehouse", "email", "email_data_plane", "events", "file_storage", "fleet_software_update", "functions", "fusion_apps", "generative_ai", "generative_ai_inference", "generic_artifacts_content", "globally_distributed_database", "golden_gate", "governance_rules_control_plane", "healthchecks", "identity", "identity_data_plane", "identity_domains", "integration", "jms", "jms_java_downloads", "key_management", "license_manager", "limits", "load_balancer", "lockbox", "log_analytics", "logging", "loggingingestion", "loggingsearch", "management_agent", "management_dashboard", "marketplace", "marketplace_private_offer", "marketplace_publisher", "media_services", "monitoring", "mysql", "network_firewall", "network_load_balancer", "nosql", "object_storage", "oce", "oci_control_center", "ocvp", "oda", "onesubscription", "ons", "opa", "opensearch", "operator_access_control", "opsi", "optimizer", "os_management", "os_management_hub", "osp_gateway", "osub_billing_schedule", "osub_organization_subscription", "osub_subscription", "osub_usage", "psql", "queue", "recovery", "redis", "resource_manager", "resource_scheduler", "resource_search", "rover", "sch", "secrets", "service_catalog", "service_manager_proxy", "service_mesh", "stack_monitoring", "streaming", "tenant_manager_control_plane", "threat_intelligence", "usage", "usage_api", "vault", "vbs_inst", "visual_builder", "vn_monitoring", "vulnerability_scanning", "waa", "waas", "waf", "work_requests"
+ "access_governance_cp", "adm", "ai_anomaly_detection", "ai_document", "ai_language", "ai_speech", "ai_vision", "analytics", "announcements_service", "apigateway", "apm_config", "apm_control_plane", "apm_synthetics", "apm_traces", "appmgmt_control", "artifacts", "audit", "autoscaling", "bastion", "bds", "blockchain", "budget", "capacity_management", "certificates", "certificates_management", "cims", "cloud_bridge", "cloud_guard", "cloud_migrations", "cluster_placement_groups", "compute_cloud_at_customer", "compute_instance_agent", "container_engine", "container_instances", "core", "dashboard_service", "data_catalog", "data_flow", "data_integration", "data_labeling_service", "data_labeling_service_dataplane", "data_safe", "data_science", "database", "database_management", "database_migration", "database_tools", "demand_signal", "desktops", "devops", "disaster_recovery", "dns", "dts", "em_warehouse", "email", "email_data_plane", "events", "file_storage", "fleet_software_update", "functions", "fusion_apps", "generative_ai", "generative_ai_inference", "generic_artifacts_content", "globally_distributed_database", "golden_gate", "governance_rules_control_plane", "healthchecks", "identity", "identity_data_plane", "identity_domains", "integration", "jms", "jms_java_downloads", "key_management", "license_manager", "limits", "load_balancer", "lockbox", "log_analytics", "logging", "loggingingestion", "loggingsearch", "management_agent", "management_dashboard", "marketplace", "marketplace_private_offer", "marketplace_publisher", "media_services", "monitoring", "mysql", "network_firewall", "network_load_balancer", "nosql", "object_storage", "oce", "oci_control_center", "ocvp", "oda", "onesubscription", "ons", "opa", "opensearch", "operator_access_control", "opsi", "optimizer", "os_management", "os_management_hub", "osp_gateway", "osub_billing_schedule", "osub_organization_subscription", "osub_subscription", "osub_usage", "psql", "queue", "recovery", "redis", "resource_manager", "resource_scheduler", "resource_search", "rover", "sch", "secrets", "service_catalog", "service_manager_proxy", "service_mesh", "stack_monitoring", "streaming", "tenant_manager_control_plane", "threat_intelligence", "usage", "usage_api", "vault", "vbs_inst", "visual_builder", "vn_monitoring", "vulnerability_scanning", "waa", "waas", "waf", "work_requests"
]
if sys.version_info >= (3, 7) and os.getenv("OCI_PYTHON_SDK_LAZY_IMPORTS_DISABLED", "False").lower() != "true":
def __getattr__(x):
@@ -30,4 +30,4 @@ def __getattr__(x):
return importlib.import_module(__name__ + "." + x)
raise AttributeError("module " + __name__ + " has no attribute" + x)
else:
- from . import access_governance_cp, adm, ai_anomaly_detection, ai_document, ai_language, ai_speech, ai_vision, analytics, announcements_service, apigateway, apm_config, apm_control_plane, apm_synthetics, apm_traces, appmgmt_control, artifacts, audit, autoscaling, bastion, bds, blockchain, budget, capacity_management, certificates, certificates_management, cims, cloud_bridge, cloud_guard, cloud_migrations, cluster_placement_groups, compute_cloud_at_customer, compute_instance_agent, container_engine, container_instances, core, dashboard_service, data_catalog, data_flow, data_integration, data_labeling_service, data_labeling_service_dataplane, data_safe, data_science, database, database_management, database_migration, database_tools, desktops, devops, disaster_recovery, dns, dts, em_warehouse, email, email_data_plane, events, file_storage, fleet_software_update, functions, fusion_apps, generative_ai, generative_ai_inference, generic_artifacts_content, globally_distributed_database, golden_gate, governance_rules_control_plane, healthchecks, identity, identity_data_plane, identity_domains, integration, jms, jms_java_downloads, key_management, license_manager, limits, load_balancer, lockbox, log_analytics, logging, loggingingestion, loggingsearch, management_agent, management_dashboard, marketplace, marketplace_private_offer, marketplace_publisher, media_services, monitoring, mysql, network_firewall, network_load_balancer, nosql, object_storage, oce, oci_control_center, ocvp, oda, onesubscription, ons, opa, opensearch, operator_access_control, opsi, optimizer, os_management, os_management_hub, osp_gateway, osub_billing_schedule, osub_organization_subscription, osub_subscription, osub_usage, psql, queue, recovery, redis, resource_manager, resource_scheduler, resource_search, rover, sch, secrets, service_catalog, service_manager_proxy, service_mesh, stack_monitoring, streaming, tenant_manager_control_plane, threat_intelligence, usage, usage_api, vault, vbs_inst, visual_builder, vn_monitoring, vulnerability_scanning, waa, waas, waf, work_requests
+ from . import access_governance_cp, adm, ai_anomaly_detection, ai_document, ai_language, ai_speech, ai_vision, analytics, announcements_service, apigateway, apm_config, apm_control_plane, apm_synthetics, apm_traces, appmgmt_control, artifacts, audit, autoscaling, bastion, bds, blockchain, budget, capacity_management, certificates, certificates_management, cims, cloud_bridge, cloud_guard, cloud_migrations, cluster_placement_groups, compute_cloud_at_customer, compute_instance_agent, container_engine, container_instances, core, dashboard_service, data_catalog, data_flow, data_integration, data_labeling_service, data_labeling_service_dataplane, data_safe, data_science, database, database_management, database_migration, database_tools, demand_signal, desktops, devops, disaster_recovery, dns, dts, em_warehouse, email, email_data_plane, events, file_storage, fleet_software_update, functions, fusion_apps, generative_ai, generative_ai_inference, generic_artifacts_content, globally_distributed_database, golden_gate, governance_rules_control_plane, healthchecks, identity, identity_data_plane, identity_domains, integration, jms, jms_java_downloads, key_management, license_manager, limits, load_balancer, lockbox, log_analytics, logging, loggingingestion, loggingsearch, management_agent, management_dashboard, marketplace, marketplace_private_offer, marketplace_publisher, media_services, monitoring, mysql, network_firewall, network_load_balancer, nosql, object_storage, oce, oci_control_center, ocvp, oda, onesubscription, ons, opa, opensearch, operator_access_control, opsi, optimizer, os_management, os_management_hub, osp_gateway, osub_billing_schedule, osub_organization_subscription, osub_subscription, osub_usage, psql, queue, recovery, redis, resource_manager, resource_scheduler, resource_search, rover, sch, secrets, service_catalog, service_manager_proxy, service_mesh, stack_monitoring, streaming, tenant_manager_control_plane, threat_intelligence, usage, usage_api, vault, vbs_inst, visual_builder, vn_monitoring, vulnerability_scanning, waa, waas, waf, work_requests
diff --git a/src/oci/capacity_management/capacity_management_client.py b/src/oci/capacity_management/capacity_management_client.py
index e13851b29..d38c7da6f 100644
--- a/src/oci/capacity_management/capacity_management_client.py
+++ b/src/oci/capacity_management/capacity_management_client.py
@@ -942,6 +942,175 @@ def get_occ_customer_group(self, occ_customer_group_id, **kwargs):
api_reference_link=api_reference_link,
required_arguments=required_arguments)
+ def list_internal_namespace_occ_overviews(self, namespace, compartment_id, **kwargs):
+ """
+ Lists an overview of all resources in that namespace in a given time interval.
+
+
+ :param str namespace: (required)
+ The namespace by which we would filter the list.
+
+ Allowed values are: "COMPUTE"
+
+ :param str compartment_id: (required)
+ The ocid of the compartment or tenancy in which resources are to be listed. This will also be used for authorization purposes.
+
+ :param str occ_customer_group_id: (optional)
+ The customer group ocid by which we would filter the list.
+
+ :param str workload_type: (optional)
+ Workload type using the resources in an availability catalog can be filtered.
+
+ :param datetime _from: (optional)
+ The month corresponding to this date would be considered as the starting point of the time period against which we would like to perform an aggregation.
+
+ :param datetime to: (optional)
+ The month corresponding to this date would be considered as the ending point of the time period against which we would like to perform an aggregation.
+
+ :param int limit: (optional)
+ The maximum number of items to return.
+
+ :param str page: (optional)
+ A token representing the position at which to start retrieving results. This must come from `opc-next-page` header field of a previous response.
+
+ :param str opc_request_id: (optional)
+ The client request ID for tracing. The only valid characters for request IDs are letters, numbers,
+ underscore, and dash.
+
+ :param str sort_order: (optional)
+ The sort order to use, either 'ASC' or 'DESC'.
+
+ Allowed values are: "ASC", "DESC"
+
+ :param str sort_by: (optional)
+ The field to sort by. Only one sort order may be provided. The default order for periodValue is chronological order(latest month item at the end).
+
+ Allowed values are: "periodValue"
+
+ :param obj retry_strategy: (optional)
+ A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.
+
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
+ The specifics of the default retry strategy are described `here `__.
+
+ To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.
+
+ :param bool allow_control_chars: (optional)
+ allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
+ By default, the response will not allow control characters in strings
+
+ :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.capacity_management.models.OccOverviewCollection`
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use list_internal_namespace_occ_overviews API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['namespace', 'compartmentId']
+ resource_path = "/internal/namespace/{namespace}/occOverview"
+ method = "GET"
+ operation_name = "list_internal_namespace_occ_overviews"
+ api_reference_link = ""
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "occ_customer_group_id",
+ "workload_type",
+ "_from",
+ "to",
+ "limit",
+ "page",
+ "opc_request_id",
+ "sort_order",
+ "sort_by"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"list_internal_namespace_occ_overviews got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "namespace": namespace
+ }
+
+ path_params = {k: v for (k, v) in six.iteritems(path_params) if v is not missing}
+
+ for (k, v) in six.iteritems(path_params):
+ if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0):
+ raise ValueError(f'Parameter {k} cannot be None, whitespace or empty string')
+
+ if 'sort_order' in kwargs:
+ sort_order_allowed_values = ["ASC", "DESC"]
+ if kwargs['sort_order'] not in sort_order_allowed_values:
+ raise ValueError(
+ f"Invalid value for `sort_order`, must be one of { sort_order_allowed_values }"
+ )
+
+ if 'sort_by' in kwargs:
+ sort_by_allowed_values = ["periodValue"]
+ if kwargs['sort_by'] not in sort_by_allowed_values:
+ raise ValueError(
+ f"Invalid value for `sort_by`, must be one of { sort_by_allowed_values }"
+ )
+
+ query_params = {
+ "compartmentId": compartment_id,
+ "occCustomerGroupId": kwargs.get("occ_customer_group_id", missing),
+ "workloadType": kwargs.get("workload_type", missing),
+ "from": kwargs.get("_from", missing),
+ "to": kwargs.get("to", missing),
+ "limit": kwargs.get("limit", missing),
+ "page": kwargs.get("page", missing),
+ "sortOrder": kwargs.get("sort_order", missing),
+ "sortBy": kwargs.get("sort_by", missing)
+ }
+ query_params = {k: v for (k, v) in six.iteritems(query_params) if v is not missing and v is not None}
+
+ header_params = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ "opc-request-id": kwargs.get("opc_request_id", missing)
+ }
+ header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None}
+
+ retry_strategy = self.base_client.get_preferred_retry_strategy(
+ operation_retry_strategy=kwargs.get('retry_strategy'),
+ client_retry_strategy=self.retry_strategy
+ )
+ if retry_strategy is None:
+ retry_strategy = retry.DEFAULT_RETRY_STRATEGY
+
+ if retry_strategy:
+ if not isinstance(retry_strategy, retry.NoneRetryStrategy):
+ self.base_client.add_opc_client_retries_header(header_params)
+ retry_strategy.add_circuit_breaker_callback(self.circuit_breaker_callback)
+ return retry_strategy.make_retrying_call(
+ self.base_client.call_api,
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ query_params=query_params,
+ header_params=header_params,
+ response_type="OccOverviewCollection",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+ else:
+ return self.base_client.call_api(
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ query_params=query_params,
+ header_params=header_params,
+ response_type="OccOverviewCollection",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+
def list_occ_availabilities(self, occ_availability_catalog_id, **kwargs):
"""
Lists availabilities for a particular availability catalog.
@@ -959,13 +1128,9 @@ def list_occ_availabilities(self, occ_availability_catalog_id, **kwargs):
:param str resource_type: (optional)
Resource type using which the capacity constraints of an availability catalog can be filtered.
- Allowed values are: "SERVER_HW", "CAPACITY_CONSTRAINT"
-
:param str workload_type: (optional)
Workload type using the resources in an availability catalog can be filtered.
- Allowed values are: "GENERIC", "ROW", "US_PROD"
-
:param int limit: (optional)
The maximum number of items to return.
@@ -1040,20 +1205,6 @@ def list_occ_availabilities(self, occ_availability_catalog_id, **kwargs):
if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0):
raise ValueError(f'Parameter {k} cannot be None, whitespace or empty string')
- if 'resource_type' in kwargs:
- resource_type_allowed_values = ["SERVER_HW", "CAPACITY_CONSTRAINT"]
- if kwargs['resource_type'] not in resource_type_allowed_values:
- raise ValueError(
- f"Invalid value for `resource_type`, must be one of { resource_type_allowed_values }"
- )
-
- if 'workload_type' in kwargs:
- workload_type_allowed_values = ["GENERIC", "ROW", "US_PROD"]
- if kwargs['workload_type'] not in workload_type_allowed_values:
- raise ValueError(
- f"Invalid value for `workload_type`, must be one of { workload_type_allowed_values }"
- )
-
if 'sort_order' in kwargs:
sort_order_allowed_values = ["ASC", "DESC"]
if kwargs['sort_order'] not in sort_order_allowed_values:
@@ -1484,6 +1635,11 @@ def list_occ_capacity_requests(self, compartment_id, **kwargs):
Allowed values are: "COMPUTE"
+ :param str request_type: (optional)
+ A filter to return only the resources that match the request type. The match is not case sensitive.
+
+ Allowed values are: "NEW", "TRANSFER"
+
:param str display_name: (optional)
A filter to return only the resources that match the entire display name. The match is not case sensitive.
@@ -1541,6 +1697,7 @@ def list_occ_capacity_requests(self, compartment_id, **kwargs):
"retry_strategy",
"occ_availability_catalog_id",
"namespace",
+ "request_type",
"display_name",
"id",
"limit",
@@ -1561,6 +1718,13 @@ def list_occ_capacity_requests(self, compartment_id, **kwargs):
f"Invalid value for `namespace`, must be one of { namespace_allowed_values }"
)
+ if 'request_type' in kwargs:
+ request_type_allowed_values = ["NEW", "TRANSFER"]
+ if kwargs['request_type'] not in request_type_allowed_values:
+ raise ValueError(
+ f"Invalid value for `request_type`, must be one of { request_type_allowed_values }"
+ )
+
if 'sort_order' in kwargs:
sort_order_allowed_values = ["ASC", "DESC"]
if kwargs['sort_order'] not in sort_order_allowed_values:
@@ -1579,6 +1743,7 @@ def list_occ_capacity_requests(self, compartment_id, **kwargs):
"compartmentId": compartment_id,
"occAvailabilityCatalogId": kwargs.get("occ_availability_catalog_id", missing),
"namespace": kwargs.get("namespace", missing),
+ "requestType": kwargs.get("request_type", missing),
"displayName": kwargs.get("display_name", missing),
"id": kwargs.get("id", missing),
"limit": kwargs.get("limit", missing),
@@ -1651,6 +1816,11 @@ def list_occ_capacity_requests_internal(self, compartment_id, **kwargs):
:param str display_name: (optional)
A filter to return only the resources that match the entire display name. The match is not case sensitive.
+ :param str request_type: (optional)
+ A filter to return only the resources that match the request type. The match is not case sensitive.
+
+ Allowed values are: "NEW", "TRANSFER"
+
:param str id: (optional)
A filter to return the list of capacity requests based on the OCID of the capacity request. This is done for the users who have INSPECT permission on the resource but do not have READ permission.
@@ -1707,6 +1877,7 @@ def list_occ_capacity_requests_internal(self, compartment_id, **kwargs):
"occ_availability_catalog_id",
"namespace",
"display_name",
+ "request_type",
"id",
"limit",
"page",
@@ -1726,6 +1897,13 @@ def list_occ_capacity_requests_internal(self, compartment_id, **kwargs):
f"Invalid value for `namespace`, must be one of { namespace_allowed_values }"
)
+ if 'request_type' in kwargs:
+ request_type_allowed_values = ["NEW", "TRANSFER"]
+ if kwargs['request_type'] not in request_type_allowed_values:
+ raise ValueError(
+ f"Invalid value for `request_type`, must be one of { request_type_allowed_values }"
+ )
+
if 'sort_order' in kwargs:
sort_order_allowed_values = ["ASC", "DESC"]
if kwargs['sort_order'] not in sort_order_allowed_values:
@@ -1746,6 +1924,7 @@ def list_occ_capacity_requests_internal(self, compartment_id, **kwargs):
"occAvailabilityCatalogId": kwargs.get("occ_availability_catalog_id", missing),
"namespace": kwargs.get("namespace", missing),
"displayName": kwargs.get("display_name", missing),
+ "requestType": kwargs.get("request_type", missing),
"id": kwargs.get("id", missing),
"limit": kwargs.get("limit", missing),
"page": kwargs.get("page", missing),
@@ -1951,13 +2130,290 @@ def list_occ_customer_groups(self, compartment_id, **kwargs):
api_reference_link=api_reference_link,
required_arguments=required_arguments)
+ def list_occ_overviews(self, namespace, compartment_id, **kwargs):
+ """
+ Lists an overview of all resources in that namespace in a given time interval.
+
+
+ :param str namespace: (required)
+ The namespace by which we would filter the list.
+
+ Allowed values are: "COMPUTE"
+
+ :param str compartment_id: (required)
+ The ocid of the compartment or tenancy in which resources are to be listed. This will also be used for authorization purposes.
+
+ :param datetime _from: (optional)
+ The month corresponding to this date would be considered as the starting point of the time period against which we would like to perform an aggregation.
+
+ :param datetime to: (optional)
+ The month corresponding to this date would be considered as the ending point of the time period against which we would like to perform an aggregation.
+
+ :param str workload_type: (optional)
+ Workload type using the resources in an availability catalog can be filtered.
+
+ :param int limit: (optional)
+ The maximum number of items to return.
+
+ :param str page: (optional)
+ A token representing the position at which to start retrieving results. This must come from `opc-next-page` header field of a previous response.
+
+ :param str opc_request_id: (optional)
+ The client request ID for tracing. The only valid characters for request IDs are letters, numbers,
+ underscore, and dash.
+
+ :param str sort_order: (optional)
+ The sort order to use, either 'ASC' or 'DESC'.
+
+ Allowed values are: "ASC", "DESC"
+
+ :param str sort_by: (optional)
+ The field to sort by. Only one sort order may be provided. The default order for periodValue is chronological order(latest month item at the end).
+
+ Allowed values are: "periodValue"
+
+ :param obj retry_strategy: (optional)
+ A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.
+
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
+ The specifics of the default retry strategy are described `here `__.
+
+ To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.
+
+ :param bool allow_control_chars: (optional)
+ allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
+ By default, the response will not allow control characters in strings
+
+ :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.capacity_management.models.OccOverviewCollection`
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use list_occ_overviews API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['namespace', 'compartmentId']
+ resource_path = "/namespace/{namespace}/occOverview"
+ method = "GET"
+ operation_name = "list_occ_overviews"
+ api_reference_link = ""
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "_from",
+ "to",
+ "workload_type",
+ "limit",
+ "page",
+ "opc_request_id",
+ "sort_order",
+ "sort_by"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"list_occ_overviews got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "namespace": namespace
+ }
+
+ path_params = {k: v for (k, v) in six.iteritems(path_params) if v is not missing}
+
+ for (k, v) in six.iteritems(path_params):
+ if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0):
+ raise ValueError(f'Parameter {k} cannot be None, whitespace or empty string')
+
+ if 'sort_order' in kwargs:
+ sort_order_allowed_values = ["ASC", "DESC"]
+ if kwargs['sort_order'] not in sort_order_allowed_values:
+ raise ValueError(
+ f"Invalid value for `sort_order`, must be one of { sort_order_allowed_values }"
+ )
+
+ if 'sort_by' in kwargs:
+ sort_by_allowed_values = ["periodValue"]
+ if kwargs['sort_by'] not in sort_by_allowed_values:
+ raise ValueError(
+ f"Invalid value for `sort_by`, must be one of { sort_by_allowed_values }"
+ )
+
+ query_params = {
+ "compartmentId": compartment_id,
+ "from": kwargs.get("_from", missing),
+ "to": kwargs.get("to", missing),
+ "workloadType": kwargs.get("workload_type", missing),
+ "limit": kwargs.get("limit", missing),
+ "page": kwargs.get("page", missing),
+ "sortOrder": kwargs.get("sort_order", missing),
+ "sortBy": kwargs.get("sort_by", missing)
+ }
+ query_params = {k: v for (k, v) in six.iteritems(query_params) if v is not missing and v is not None}
+
+ header_params = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ "opc-request-id": kwargs.get("opc_request_id", missing)
+ }
+ header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None}
+
+ retry_strategy = self.base_client.get_preferred_retry_strategy(
+ operation_retry_strategy=kwargs.get('retry_strategy'),
+ client_retry_strategy=self.retry_strategy
+ )
+ if retry_strategy is None:
+ retry_strategy = retry.DEFAULT_RETRY_STRATEGY
+
+ if retry_strategy:
+ if not isinstance(retry_strategy, retry.NoneRetryStrategy):
+ self.base_client.add_opc_client_retries_header(header_params)
+ retry_strategy.add_circuit_breaker_callback(self.circuit_breaker_callback)
+ return retry_strategy.make_retrying_call(
+ self.base_client.call_api,
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ query_params=query_params,
+ header_params=header_params,
+ response_type="OccOverviewCollection",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+ else:
+ return self.base_client.call_api(
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ query_params=query_params,
+ header_params=header_params,
+ response_type="OccOverviewCollection",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+
+ def patch_internal_occ_capacity_request(self, patch_occ_capacity_request_details, occ_capacity_request_id, **kwargs):
+ """
+ Updates the OccCapacityRequest by evaluating a sequence of instructions.
+
+
+ :param oci.capacity_management.models.PatchOccCapacityRequestDetails patch_occ_capacity_request_details: (required)
+ Request to update the details of the capacity request.
+
+ :param str occ_capacity_request_id: (required)
+ The OCID of the capacity request.
+
+ :param str if_match: (optional)
+ For optimistic concurrency control. In the PUT or DELETE call
+ for a resource, set the `if-match` parameter to the value of the
+ etag from a previous GET or POST response for that resource.
+ The resource will be updated or deleted only if the etag you
+ provide matches the resource's current etag value.
+
+ :param str opc_request_id: (optional)
+ The client request ID for tracing. The only valid characters for request IDs are letters, numbers,
+ underscore, and dash.
+
+ :param obj retry_strategy: (optional)
+ A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.
+
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
+ The specifics of the default retry strategy are described `here `__.
+
+ To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.
+
+ :param bool allow_control_chars: (optional)
+ allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
+ By default, the response will not allow control characters in strings
+
+ :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.capacity_management.models.OccCapacityRequest`
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use patch_internal_occ_capacity_request API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['occCapacityRequestId']
+ resource_path = "/internal/occCapacityRequests/{occCapacityRequestId}"
+ method = "PATCH"
+ operation_name = "patch_internal_occ_capacity_request"
+ api_reference_link = ""
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "if_match",
+ "opc_request_id"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"patch_internal_occ_capacity_request got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "occCapacityRequestId": occ_capacity_request_id
+ }
+
+ path_params = {k: v for (k, v) in six.iteritems(path_params) if v is not missing}
+
+ for (k, v) in six.iteritems(path_params):
+ if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0):
+ raise ValueError(f'Parameter {k} cannot be None, whitespace or empty string')
+
+ header_params = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ "if-match": kwargs.get("if_match", missing),
+ "opc-request-id": kwargs.get("opc_request_id", missing)
+ }
+ header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None}
+
+ retry_strategy = self.base_client.get_preferred_retry_strategy(
+ operation_retry_strategy=kwargs.get('retry_strategy'),
+ client_retry_strategy=self.retry_strategy
+ )
+ if retry_strategy is None:
+ retry_strategy = retry.DEFAULT_RETRY_STRATEGY
+
+ if retry_strategy:
+ if not isinstance(retry_strategy, retry.NoneRetryStrategy):
+ self.base_client.add_opc_client_retries_header(header_params)
+ retry_strategy.add_circuit_breaker_callback(self.circuit_breaker_callback)
+ return retry_strategy.make_retrying_call(
+ self.base_client.call_api,
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ header_params=header_params,
+ body=patch_occ_capacity_request_details,
+ response_type="OccCapacityRequest",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+ else:
+ return self.base_client.call_api(
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ header_params=header_params,
+ body=patch_occ_capacity_request_details,
+ response_type="OccCapacityRequest",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+
def patch_occ_capacity_request(self, patch_occ_capacity_request_details, occ_capacity_request_id, **kwargs):
"""
Updates the OccCapacityRequest by evaluating a sequence of instructions.
:param oci.capacity_management.models.PatchOccCapacityRequestDetails patch_occ_capacity_request_details: (required)
- Request to update the properties of the capacity request.
+ Request to update the details of the capacity request.
:param str occ_capacity_request_id: (required)
The OCID of the capacity request.
diff --git a/src/oci/capacity_management/models/__init__.py b/src/oci/capacity_management/models/__init__.py
index 6684016c2..2321e5399 100644
--- a/src/oci/capacity_management/models/__init__.py
+++ b/src/oci/capacity_management/models/__init__.py
@@ -17,12 +17,13 @@
from .occ_capacity_request import OccCapacityRequest
from .occ_capacity_request_base_details import OccCapacityRequestBaseDetails
from .occ_capacity_request_collection import OccCapacityRequestCollection
-from .occ_capacity_request_compute_details import OccCapacityRequestComputeDetails
from .occ_capacity_request_summary import OccCapacityRequestSummary
from .occ_customer import OccCustomer
from .occ_customer_group import OccCustomerGroup
from .occ_customer_group_collection import OccCustomerGroupCollection
from .occ_customer_group_summary import OccCustomerGroupSummary
+from .occ_overview_collection import OccOverviewCollection
+from .occ_overview_summary import OccOverviewSummary
from .patch_insert_instruction import PatchInsertInstruction
from .patch_insert_multiple_instruction import PatchInsertMultipleInstruction
from .patch_instruction import PatchInstruction
@@ -50,12 +51,13 @@
"OccCapacityRequest": OccCapacityRequest,
"OccCapacityRequestBaseDetails": OccCapacityRequestBaseDetails,
"OccCapacityRequestCollection": OccCapacityRequestCollection,
- "OccCapacityRequestComputeDetails": OccCapacityRequestComputeDetails,
"OccCapacityRequestSummary": OccCapacityRequestSummary,
"OccCustomer": OccCustomer,
"OccCustomerGroup": OccCustomerGroup,
"OccCustomerGroupCollection": OccCustomerGroupCollection,
"OccCustomerGroupSummary": OccCustomerGroupSummary,
+ "OccOverviewCollection": OccOverviewCollection,
+ "OccOverviewSummary": OccOverviewSummary,
"PatchInsertInstruction": PatchInsertInstruction,
"PatchInsertMultipleInstruction": PatchInsertMultipleInstruction,
"PatchInstruction": PatchInstruction,
diff --git a/src/oci/capacity_management/models/create_occ_capacity_request_details.py b/src/oci/capacity_management/models/create_occ_capacity_request_details.py
index 048ed50ce..af2cce926 100644
--- a/src/oci/capacity_management/models/create_occ_capacity_request_details.py
+++ b/src/oci/capacity_management/models/create_occ_capacity_request_details.py
@@ -53,6 +53,10 @@ def __init__(self, **kwargs):
The value to assign to the display_name property of this CreateOccCapacityRequestDetails.
:type display_name: str
+ :param request_type:
+ The value to assign to the request_type property of this CreateOccCapacityRequestDetails.
+ :type request_type: str
+
:param description:
The value to assign to the description property of this CreateOccCapacityRequestDetails.
:type description: str
@@ -93,6 +97,7 @@ def __init__(self, **kwargs):
'namespace': 'str',
'region': 'str',
'display_name': 'str',
+ 'request_type': 'str',
'description': 'str',
'freeform_tags': 'dict(str, str)',
'defined_tags': 'dict(str, dict(str, object))',
@@ -109,6 +114,7 @@ def __init__(self, **kwargs):
'namespace': 'namespace',
'region': 'region',
'display_name': 'displayName',
+ 'request_type': 'requestType',
'description': 'description',
'freeform_tags': 'freeformTags',
'defined_tags': 'definedTags',
@@ -124,6 +130,7 @@ def __init__(self, **kwargs):
self._namespace = None
self._region = None
self._display_name = None
+ self._request_type = None
self._description = None
self._freeform_tags = None
self._defined_tags = None
@@ -160,7 +167,7 @@ def compartment_id(self, compartment_id):
@property
def occ_availability_catalog_id(self):
"""
- **[Required]** Gets the occ_availability_catalog_id of this CreateOccCapacityRequestDetails.
+ Gets the occ_availability_catalog_id of this CreateOccCapacityRequestDetails.
The OCID of the availability catalog against which capacity request is made.
@@ -260,6 +267,30 @@ def display_name(self, display_name):
"""
self._display_name = display_name
+ @property
+ def request_type(self):
+ """
+ Gets the request_type of this CreateOccCapacityRequestDetails.
+ Type of Capacity Request(New or Transfer)
+
+
+ :return: The request_type of this CreateOccCapacityRequestDetails.
+ :rtype: str
+ """
+ return self._request_type
+
+ @request_type.setter
+ def request_type(self, request_type):
+ """
+ Sets the request_type of this CreateOccCapacityRequestDetails.
+ Type of Capacity Request(New or Transfer)
+
+
+ :param request_type: The request_type of this CreateOccCapacityRequestDetails.
+ :type: str
+ """
+ self._request_type = request_type
+
@property
def description(self):
"""
diff --git a/src/oci/capacity_management/models/metadata_details.py b/src/oci/capacity_management/models/metadata_details.py
index 1be40341d..823b5d24e 100644
--- a/src/oci/capacity_management/models/metadata_details.py
+++ b/src/oci/capacity_management/models/metadata_details.py
@@ -19,6 +19,10 @@ class MetadataDetails(object):
#: This constant has a value of "V1"
FORMAT_VERSION_V1 = "V1"
+ #: A constant which can be used with the format_version property of a MetadataDetails.
+ #: This constant has a value of "V2"
+ FORMAT_VERSION_V2 = "V2"
+
def __init__(self, **kwargs):
"""
Initializes a new MetadataDetails object with values from keyword arguments.
@@ -26,7 +30,7 @@ def __init__(self, **kwargs):
:param format_version:
The value to assign to the format_version property of this MetadataDetails.
- Allowed values for this property are: "V1", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "V1", "V2", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type format_version: str
@@ -47,7 +51,7 @@ def format_version(self):
**[Required]** Gets the format_version of this MetadataDetails.
The version for the format of the catalog file being uploaded.
- Allowed values for this property are: "V1", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "V1", "V2", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -66,7 +70,7 @@ def format_version(self, format_version):
:param format_version: The format_version of this MetadataDetails.
:type: str
"""
- allowed_values = ["V1"]
+ allowed_values = ["V1", "V2"]
if not value_allowed_none_or_none_sentinel(format_version, allowed_values):
format_version = 'UNKNOWN_ENUM_VALUE'
self._format_version = format_version
diff --git a/src/oci/capacity_management/models/occ_availability_catalog.py b/src/oci/capacity_management/models/occ_availability_catalog.py
index 0e566964e..320e9bd8e 100644
--- a/src/oci/capacity_management/models/occ_availability_catalog.py
+++ b/src/oci/capacity_management/models/occ_availability_catalog.py
@@ -582,7 +582,7 @@ def system_tags(self, system_tags):
def details(self):
"""
Gets the details of this OccAvailabilityCatalog.
- Details about capacity available for different resources in catalog.
+ Details about capacity available for different resources in catalog.
:return: The details of this OccAvailabilityCatalog.
@@ -594,7 +594,7 @@ def details(self):
def details(self, details):
"""
Sets the details of this OccAvailabilityCatalog.
- Details about capacity available for different resources in catalog.
+ Details about capacity available for different resources in catalog.
:param details: The details of this OccAvailabilityCatalog.
diff --git a/src/oci/capacity_management/models/occ_availability_catalog_summary.py b/src/oci/capacity_management/models/occ_availability_catalog_summary.py
index 74577fc94..7e0515b4b 100644
--- a/src/oci/capacity_management/models/occ_availability_catalog_summary.py
+++ b/src/oci/capacity_management/models/occ_availability_catalog_summary.py
@@ -221,7 +221,7 @@ def compartment_id(self, compartment_id):
def display_name(self):
"""
**[Required]** Gets the display_name of this OccAvailabilityCatalogSummary.
- An user-friendly name for the availability catalog. Does not have to be unique, and it's changeable. Avoid entering confidential information.
+ An user-friendly name for the availability catalog. Does not have to be unique, and is changeable. Avoid entering confidential information.
:return: The display_name of this OccAvailabilityCatalogSummary.
@@ -233,7 +233,7 @@ def display_name(self):
def display_name(self, display_name):
"""
Sets the display_name of this OccAvailabilityCatalogSummary.
- An user-friendly name for the availability catalog. Does not have to be unique, and it's changeable. Avoid entering confidential information.
+ An user-friendly name for the availability catalog. Does not have to be unique, and is changeable. Avoid entering confidential information.
:param display_name: The display_name of this OccAvailabilityCatalogSummary.
diff --git a/src/oci/capacity_management/models/occ_availability_summary.py b/src/oci/capacity_management/models/occ_availability_summary.py
index 8101c0813..324223ae1 100644
--- a/src/oci/capacity_management/models/occ_availability_summary.py
+++ b/src/oci/capacity_management/models/occ_availability_summary.py
@@ -19,26 +19,6 @@ class OccAvailabilitySummary(object):
#: This constant has a value of "COMPUTE"
NAMESPACE_COMPUTE = "COMPUTE"
- #: A constant which can be used with the resource_type property of a OccAvailabilitySummary.
- #: This constant has a value of "SERVER_HW"
- RESOURCE_TYPE_SERVER_HW = "SERVER_HW"
-
- #: A constant which can be used with the resource_type property of a OccAvailabilitySummary.
- #: This constant has a value of "CAPACITY_CONSTRAINT"
- RESOURCE_TYPE_CAPACITY_CONSTRAINT = "CAPACITY_CONSTRAINT"
-
- #: A constant which can be used with the workload_type property of a OccAvailabilitySummary.
- #: This constant has a value of "GENERIC"
- WORKLOAD_TYPE_GENERIC = "GENERIC"
-
- #: A constant which can be used with the workload_type property of a OccAvailabilitySummary.
- #: This constant has a value of "ROW"
- WORKLOAD_TYPE_ROW = "ROW"
-
- #: A constant which can be used with the workload_type property of a OccAvailabilitySummary.
- #: This constant has a value of "US_PROD"
- WORKLOAD_TYPE_US_PROD = "US_PROD"
-
def __init__(self, **kwargs):
"""
Initializes a new OccAvailabilitySummary object with values from keyword arguments.
@@ -64,14 +44,10 @@ def __init__(self, **kwargs):
:param resource_type:
The value to assign to the resource_type property of this OccAvailabilitySummary.
- Allowed values for this property are: "SERVER_HW", "CAPACITY_CONSTRAINT", 'UNKNOWN_ENUM_VALUE'.
- Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type resource_type: str
:param workload_type:
The value to assign to the workload_type property of this OccAvailabilitySummary.
- Allowed values for this property are: "GENERIC", "ROW", "US_PROD", 'UNKNOWN_ENUM_VALUE'.
- Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type workload_type: str
:param resource_name:
@@ -82,10 +58,22 @@ def __init__(self, **kwargs):
The value to assign to the available_quantity property of this OccAvailabilitySummary.
:type available_quantity: int
+ :param total_available_quantity:
+ The value to assign to the total_available_quantity property of this OccAvailabilitySummary.
+ :type total_available_quantity: int
+
+ :param demanded_quantity:
+ The value to assign to the demanded_quantity property of this OccAvailabilitySummary.
+ :type demanded_quantity: int
+
:param unit:
The value to assign to the unit property of this OccAvailabilitySummary.
:type unit: str
+ :param system_tags:
+ The value to assign to the system_tags property of this OccAvailabilitySummary.
+ :type system_tags: dict(str, dict(str, object))
+
"""
self.swagger_types = {
'catalog_id': 'str',
@@ -96,7 +84,10 @@ def __init__(self, **kwargs):
'workload_type': 'str',
'resource_name': 'str',
'available_quantity': 'int',
- 'unit': 'str'
+ 'total_available_quantity': 'int',
+ 'demanded_quantity': 'int',
+ 'unit': 'str',
+ 'system_tags': 'dict(str, dict(str, object))'
}
self.attribute_map = {
@@ -108,7 +99,10 @@ def __init__(self, **kwargs):
'workload_type': 'workloadType',
'resource_name': 'resourceName',
'available_quantity': 'availableQuantity',
- 'unit': 'unit'
+ 'total_available_quantity': 'totalAvailableQuantity',
+ 'demanded_quantity': 'demandedQuantity',
+ 'unit': 'unit',
+ 'system_tags': 'systemTags'
}
self._catalog_id = None
@@ -119,7 +113,10 @@ def __init__(self, **kwargs):
self._workload_type = None
self._resource_name = None
self._available_quantity = None
+ self._total_available_quantity = None
+ self._demanded_quantity = None
self._unit = None
+ self._system_tags = None
@property
def catalog_id(self):
@@ -229,9 +226,6 @@ def resource_type(self):
**[Required]** Gets the resource_type of this OccAvailabilitySummary.
The different types of resources against which customers can place capacity requests.
- Allowed values for this property are: "SERVER_HW", "CAPACITY_CONSTRAINT", 'UNKNOWN_ENUM_VALUE'.
- Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
-
:return: The resource_type of this OccAvailabilitySummary.
:rtype: str
@@ -248,9 +242,6 @@ def resource_type(self, resource_type):
:param resource_type: The resource_type of this OccAvailabilitySummary.
:type: str
"""
- allowed_values = ["SERVER_HW", "CAPACITY_CONSTRAINT"]
- if not value_allowed_none_or_none_sentinel(resource_type, allowed_values):
- resource_type = 'UNKNOWN_ENUM_VALUE'
self._resource_type = resource_type
@property
@@ -259,9 +250,6 @@ def workload_type(self):
**[Required]** Gets the workload_type of this OccAvailabilitySummary.
The type of workload (Generic/ROW).
- Allowed values for this property are: "GENERIC", "ROW", "US_PROD", 'UNKNOWN_ENUM_VALUE'.
- Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
-
:return: The workload_type of this OccAvailabilitySummary.
:rtype: str
@@ -278,9 +266,6 @@ def workload_type(self, workload_type):
:param workload_type: The workload_type of this OccAvailabilitySummary.
:type: str
"""
- allowed_values = ["GENERIC", "ROW", "US_PROD"]
- if not value_allowed_none_or_none_sentinel(workload_type, allowed_values):
- workload_type = 'UNKNOWN_ENUM_VALUE'
self._workload_type = workload_type
@property
@@ -311,7 +296,7 @@ def resource_name(self, resource_name):
def available_quantity(self):
"""
**[Required]** Gets the available_quantity of this OccAvailabilitySummary.
- The quantity of available resource that the customer can request.
+ The quantity of resource currently available that the customer can request.
:return: The available_quantity of this OccAvailabilitySummary.
@@ -323,7 +308,7 @@ def available_quantity(self):
def available_quantity(self, available_quantity):
"""
Sets the available_quantity of this OccAvailabilitySummary.
- The quantity of available resource that the customer can request.
+ The quantity of resource currently available that the customer can request.
:param available_quantity: The available_quantity of this OccAvailabilitySummary.
@@ -331,6 +316,54 @@ def available_quantity(self, available_quantity):
"""
self._available_quantity = available_quantity
+ @property
+ def total_available_quantity(self):
+ """
+ **[Required]** Gets the total_available_quantity of this OccAvailabilitySummary.
+ The total quantity of resource that the customer can request.
+
+
+ :return: The total_available_quantity of this OccAvailabilitySummary.
+ :rtype: int
+ """
+ return self._total_available_quantity
+
+ @total_available_quantity.setter
+ def total_available_quantity(self, total_available_quantity):
+ """
+ Sets the total_available_quantity of this OccAvailabilitySummary.
+ The total quantity of resource that the customer can request.
+
+
+ :param total_available_quantity: The total_available_quantity of this OccAvailabilitySummary.
+ :type: int
+ """
+ self._total_available_quantity = total_available_quantity
+
+ @property
+ def demanded_quantity(self):
+ """
+ **[Required]** Gets the demanded_quantity of this OccAvailabilitySummary.
+ The quantity of resource currently demanded by the customer.
+
+
+ :return: The demanded_quantity of this OccAvailabilitySummary.
+ :rtype: int
+ """
+ return self._demanded_quantity
+
+ @demanded_quantity.setter
+ def demanded_quantity(self, demanded_quantity):
+ """
+ Sets the demanded_quantity of this OccAvailabilitySummary.
+ The quantity of resource currently demanded by the customer.
+
+
+ :param demanded_quantity: The demanded_quantity of this OccAvailabilitySummary.
+ :type: int
+ """
+ self._demanded_quantity = demanded_quantity
+
@property
def unit(self):
"""
@@ -355,6 +388,32 @@ def unit(self, unit):
"""
self._unit = unit
+ @property
+ def system_tags(self):
+ """
+ Gets the system_tags of this OccAvailabilitySummary.
+ System tags for this resource. Each key is predefined and scoped to a namespace.
+ Example: `{\"orcl-cloud\": {\"free-tier-retained\": \"true\"}}`
+
+
+ :return: The system_tags of this OccAvailabilitySummary.
+ :rtype: dict(str, dict(str, object))
+ """
+ return self._system_tags
+
+ @system_tags.setter
+ def system_tags(self, system_tags):
+ """
+ Sets the system_tags of this OccAvailabilitySummary.
+ System tags for this resource. Each key is predefined and scoped to a namespace.
+ Example: `{\"orcl-cloud\": {\"free-tier-retained\": \"true\"}}`
+
+
+ :param system_tags: The system_tags of this OccAvailabilitySummary.
+ :type: dict(str, dict(str, object))
+ """
+ self._system_tags = system_tags
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/capacity_management/models/occ_capacity_request.py b/src/oci/capacity_management/models/occ_capacity_request.py
index fedd4ad51..69645cca9 100644
--- a/src/oci/capacity_management/models/occ_capacity_request.py
+++ b/src/oci/capacity_management/models/occ_capacity_request.py
@@ -19,6 +19,14 @@ class OccCapacityRequest(object):
#: This constant has a value of "COMPUTE"
NAMESPACE_COMPUTE = "COMPUTE"
+ #: A constant which can be used with the request_type property of a OccCapacityRequest.
+ #: This constant has a value of "NEW"
+ REQUEST_TYPE_NEW = "NEW"
+
+ #: A constant which can be used with the request_type property of a OccCapacityRequest.
+ #: This constant has a value of "TRANSFER"
+ REQUEST_TYPE_TRANSFER = "TRANSFER"
+
#: A constant which can be used with the request_state property of a OccCapacityRequest.
#: This constant has a value of "CREATED"
REQUEST_STATE_CREATED = "CREATED"
@@ -110,6 +118,12 @@ def __init__(self, **kwargs):
The value to assign to the occ_customer_group_id property of this OccCapacityRequest.
:type occ_customer_group_id: str
+ :param request_type:
+ The value to assign to the request_type property of this OccCapacityRequest.
+ Allowed values for this property are: "NEW", "TRANSFER", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type request_type: str
+
:param region:
The value to assign to the region property of this OccCapacityRequest.
:type region: str
@@ -171,6 +185,7 @@ def __init__(self, **kwargs):
'description': 'str',
'namespace': 'str',
'occ_customer_group_id': 'str',
+ 'request_type': 'str',
'region': 'str',
'availability_domain': 'str',
'date_expected_capacity_handover': 'datetime',
@@ -193,6 +208,7 @@ def __init__(self, **kwargs):
'description': 'description',
'namespace': 'namespace',
'occ_customer_group_id': 'occCustomerGroupId',
+ 'request_type': 'requestType',
'region': 'region',
'availability_domain': 'availabilityDomain',
'date_expected_capacity_handover': 'dateExpectedCapacityHandover',
@@ -214,6 +230,7 @@ def __init__(self, **kwargs):
self._description = None
self._namespace = None
self._occ_customer_group_id = None
+ self._request_type = None
self._region = None
self._availability_domain = None
self._date_expected_capacity_handover = None
@@ -401,6 +418,36 @@ def occ_customer_group_id(self, occ_customer_group_id):
"""
self._occ_customer_group_id = occ_customer_group_id
+ @property
+ def request_type(self):
+ """
+ Gets the request_type of this OccCapacityRequest.
+ Type of Capacity Request(New or Transfer)
+
+ Allowed values for this property are: "NEW", "TRANSFER", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The request_type of this OccCapacityRequest.
+ :rtype: str
+ """
+ return self._request_type
+
+ @request_type.setter
+ def request_type(self, request_type):
+ """
+ Sets the request_type of this OccCapacityRequest.
+ Type of Capacity Request(New or Transfer)
+
+
+ :param request_type: The request_type of this OccCapacityRequest.
+ :type: str
+ """
+ allowed_values = ["NEW", "TRANSFER"]
+ if not value_allowed_none_or_none_sentinel(request_type, allowed_values):
+ request_type = 'UNKNOWN_ENUM_VALUE'
+ self._request_type = request_type
+
@property
def region(self):
"""
diff --git a/src/oci/capacity_management/models/occ_capacity_request_base_details.py b/src/oci/capacity_management/models/occ_capacity_request_base_details.py
index eb1392eb4..085231134 100644
--- a/src/oci/capacity_management/models/occ_capacity_request_base_details.py
+++ b/src/oci/capacity_management/models/occ_capacity_request_base_details.py
@@ -15,29 +15,23 @@ class OccCapacityRequestBaseDetails(object):
The details of the create capacity request. This model serves as a base for different namespaces.
"""
- #: A constant which can be used with the resource_type property of a OccCapacityRequestBaseDetails.
- #: This constant has a value of "SERVER_HW"
- RESOURCE_TYPE_SERVER_HW = "SERVER_HW"
-
def __init__(self, **kwargs):
"""
- Initializes a new OccCapacityRequestBaseDetails object with values from keyword arguments. This class has the following subclasses and if you are using this class as input
- to a service operations then you should favor using a subclass over the base class:
-
- * :class:`~oci.capacity_management.models.OccCapacityRequestComputeDetails`
-
+ Initializes a new OccCapacityRequestBaseDetails object with values from keyword arguments.
The following keyword arguments are supported (corresponding to the getters/setters of this class):
:param resource_type:
The value to assign to the resource_type property of this OccCapacityRequestBaseDetails.
- Allowed values for this property are: "SERVER_HW", 'UNKNOWN_ENUM_VALUE'.
- Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type resource_type: str
:param workload_type:
The value to assign to the workload_type property of this OccCapacityRequestBaseDetails.
:type workload_type: str
+ :param source_workload_type:
+ The value to assign to the source_workload_type property of this OccCapacityRequestBaseDetails.
+ :type source_workload_type: str
+
:param expected_handover_quantity:
The value to assign to the expected_handover_quantity property of this OccCapacityRequestBaseDetails.
:type expected_handover_quantity: int
@@ -54,44 +48,48 @@ def __init__(self, **kwargs):
The value to assign to the date_actual_handover property of this OccCapacityRequestBaseDetails.
:type date_actual_handover: datetime
+ :param resource_name:
+ The value to assign to the resource_name property of this OccCapacityRequestBaseDetails.
+ :type resource_name: str
+
+ :param demand_quantity:
+ The value to assign to the demand_quantity property of this OccCapacityRequestBaseDetails.
+ :type demand_quantity: int
+
"""
self.swagger_types = {
'resource_type': 'str',
'workload_type': 'str',
+ 'source_workload_type': 'str',
'expected_handover_quantity': 'int',
'date_expected_handover': 'datetime',
'actual_handover_quantity': 'int',
- 'date_actual_handover': 'datetime'
+ 'date_actual_handover': 'datetime',
+ 'resource_name': 'str',
+ 'demand_quantity': 'int'
}
self.attribute_map = {
'resource_type': 'resourceType',
'workload_type': 'workloadType',
+ 'source_workload_type': 'sourceWorkloadType',
'expected_handover_quantity': 'expectedHandoverQuantity',
'date_expected_handover': 'dateExpectedHandover',
'actual_handover_quantity': 'actualHandoverQuantity',
- 'date_actual_handover': 'dateActualHandover'
+ 'date_actual_handover': 'dateActualHandover',
+ 'resource_name': 'resourceName',
+ 'demand_quantity': 'demandQuantity'
}
self._resource_type = None
self._workload_type = None
+ self._source_workload_type = None
self._expected_handover_quantity = None
self._date_expected_handover = None
self._actual_handover_quantity = None
self._date_actual_handover = None
-
- @staticmethod
- def get_subtype(object_dictionary):
- """
- Given the hash representation of a subtype of this class,
- use the info in the hash to return the class of the subtype.
- """
- type = object_dictionary['resourceType']
-
- if type == 'SERVER_HW':
- return 'OccCapacityRequestComputeDetails'
- else:
- return 'OccCapacityRequestBaseDetails'
+ self._resource_name = None
+ self._demand_quantity = None
@property
def resource_type(self):
@@ -99,9 +97,6 @@ def resource_type(self):
**[Required]** Gets the resource_type of this OccCapacityRequestBaseDetails.
The type of the resource against which the user wants to place a capacity request.
- Allowed values for this property are: "SERVER_HW", 'UNKNOWN_ENUM_VALUE'.
- Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
-
:return: The resource_type of this OccCapacityRequestBaseDetails.
:rtype: str
@@ -118,9 +113,6 @@ def resource_type(self, resource_type):
:param resource_type: The resource_type of this OccCapacityRequestBaseDetails.
:type: str
"""
- allowed_values = ["SERVER_HW"]
- if not value_allowed_none_or_none_sentinel(resource_type, allowed_values):
- resource_type = 'UNKNOWN_ENUM_VALUE'
self._resource_type = resource_type
@property
@@ -147,6 +139,30 @@ def workload_type(self, workload_type):
"""
self._workload_type = workload_type
+ @property
+ def source_workload_type(self):
+ """
+ Gets the source_workload_type of this OccCapacityRequestBaseDetails.
+ The WorkloadType from where capacity request are to be transferred.
+
+
+ :return: The source_workload_type of this OccCapacityRequestBaseDetails.
+ :rtype: str
+ """
+ return self._source_workload_type
+
+ @source_workload_type.setter
+ def source_workload_type(self, source_workload_type):
+ """
+ Sets the source_workload_type of this OccCapacityRequestBaseDetails.
+ The WorkloadType from where capacity request are to be transferred.
+
+
+ :param source_workload_type: The source_workload_type of this OccCapacityRequestBaseDetails.
+ :type: str
+ """
+ self._source_workload_type = source_workload_type
+
@property
def expected_handover_quantity(self):
"""
@@ -243,6 +259,54 @@ def date_actual_handover(self, date_actual_handover):
"""
self._date_actual_handover = date_actual_handover
+ @property
+ def resource_name(self):
+ """
+ **[Required]** Gets the resource_name of this OccCapacityRequestBaseDetails.
+ The name of the COMPUTE server shape for which the request is made. Do not use CAPACITY_CONSTRAINT as the resource name.
+
+
+ :return: The resource_name of this OccCapacityRequestBaseDetails.
+ :rtype: str
+ """
+ return self._resource_name
+
+ @resource_name.setter
+ def resource_name(self, resource_name):
+ """
+ Sets the resource_name of this OccCapacityRequestBaseDetails.
+ The name of the COMPUTE server shape for which the request is made. Do not use CAPACITY_CONSTRAINT as the resource name.
+
+
+ :param resource_name: The resource_name of this OccCapacityRequestBaseDetails.
+ :type: str
+ """
+ self._resource_name = resource_name
+
+ @property
+ def demand_quantity(self):
+ """
+ **[Required]** Gets the demand_quantity of this OccCapacityRequestBaseDetails.
+ The number of compute server's with name required by the user.
+
+
+ :return: The demand_quantity of this OccCapacityRequestBaseDetails.
+ :rtype: int
+ """
+ return self._demand_quantity
+
+ @demand_quantity.setter
+ def demand_quantity(self, demand_quantity):
+ """
+ Sets the demand_quantity of this OccCapacityRequestBaseDetails.
+ The number of compute server's with name required by the user.
+
+
+ :param demand_quantity: The demand_quantity of this OccCapacityRequestBaseDetails.
+ :type: int
+ """
+ self._demand_quantity = demand_quantity
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/capacity_management/models/occ_capacity_request_summary.py b/src/oci/capacity_management/models/occ_capacity_request_summary.py
index 6e8c17b85..0403f48f8 100644
--- a/src/oci/capacity_management/models/occ_capacity_request_summary.py
+++ b/src/oci/capacity_management/models/occ_capacity_request_summary.py
@@ -70,6 +70,10 @@ def __init__(self, **kwargs):
The value to assign to the request_state property of this OccCapacityRequestSummary.
:type request_state: str
+ :param request_type:
+ The value to assign to the request_type property of this OccCapacityRequestSummary.
+ :type request_type: str
+
:param time_created:
The value to assign to the time_created property of this OccCapacityRequestSummary.
:type time_created: datetime
@@ -111,6 +115,7 @@ def __init__(self, **kwargs):
'availability_domain': 'str',
'date_expected_capacity_handover': 'datetime',
'request_state': 'str',
+ 'request_type': 'str',
'time_created': 'datetime',
'time_updated': 'datetime',
'lifecycle_state': 'str',
@@ -132,6 +137,7 @@ def __init__(self, **kwargs):
'availability_domain': 'availabilityDomain',
'date_expected_capacity_handover': 'dateExpectedCapacityHandover',
'request_state': 'requestState',
+ 'request_type': 'requestType',
'time_created': 'timeCreated',
'time_updated': 'timeUpdated',
'lifecycle_state': 'lifecycleState',
@@ -152,6 +158,7 @@ def __init__(self, **kwargs):
self._availability_domain = None
self._date_expected_capacity_handover = None
self._request_state = None
+ self._request_type = None
self._time_created = None
self._time_updated = None
self._lifecycle_state = None
@@ -430,6 +437,30 @@ def request_state(self, request_state):
"""
self._request_state = request_state
+ @property
+ def request_type(self):
+ """
+ Gets the request_type of this OccCapacityRequestSummary.
+ Type of Capacity Request(New or Transfer)
+
+
+ :return: The request_type of this OccCapacityRequestSummary.
+ :rtype: str
+ """
+ return self._request_type
+
+ @request_type.setter
+ def request_type(self, request_type):
+ """
+ Sets the request_type of this OccCapacityRequestSummary.
+ Type of Capacity Request(New or Transfer)
+
+
+ :param request_type: The request_type of this OccCapacityRequestSummary.
+ :type: str
+ """
+ self._request_type = request_type
+
@property
def time_created(self):
"""
diff --git a/src/oci/capacity_management/models/occ_overview_collection.py b/src/oci/capacity_management/models/occ_overview_collection.py
new file mode 100644
index 000000000..50e97b363
--- /dev/null
+++ b/src/oci/capacity_management/models/occ_overview_collection.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20231107
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class OccOverviewCollection(object):
+ """
+ A list representing response of overview API.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new OccOverviewCollection object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param items:
+ The value to assign to the items property of this OccOverviewCollection.
+ :type items: list[oci.capacity_management.models.OccOverviewSummary]
+
+ """
+ self.swagger_types = {
+ 'items': 'list[OccOverviewSummary]'
+ }
+
+ self.attribute_map = {
+ 'items': 'items'
+ }
+
+ self._items = None
+
+ @property
+ def items(self):
+ """
+ **[Required]** Gets the items of this OccOverviewCollection.
+ An array of overview summary.
+
+
+ :return: The items of this OccOverviewCollection.
+ :rtype: list[oci.capacity_management.models.OccOverviewSummary]
+ """
+ return self._items
+
+ @items.setter
+ def items(self, items):
+ """
+ Sets the items of this OccOverviewCollection.
+ An array of overview summary.
+
+
+ :param items: The items of this OccOverviewCollection.
+ :type: list[oci.capacity_management.models.OccOverviewSummary]
+ """
+ self._items = items
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/capacity_management/models/occ_overview_summary.py b/src/oci/capacity_management/models/occ_overview_summary.py
new file mode 100644
index 000000000..6b200ccc4
--- /dev/null
+++ b/src/oci/capacity_management/models/occ_overview_summary.py
@@ -0,0 +1,413 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20231107
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class OccOverviewSummary(object):
+ """
+ The overview summary is used to represent an array item that shall be used to represent the overview of the catalog resources along with their corresponding capacity requests.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new OccOverviewSummary object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param compartment_id:
+ The value to assign to the compartment_id property of this OccOverviewSummary.
+ :type compartment_id: str
+
+ :param period_value:
+ The value to assign to the period_value property of this OccOverviewSummary.
+ :type period_value: str
+
+ :param resource_name:
+ The value to assign to the resource_name property of this OccOverviewSummary.
+ :type resource_name: str
+
+ :param total_available:
+ The value to assign to the total_available property of this OccOverviewSummary.
+ :type total_available: int
+
+ :param total_demanded:
+ The value to assign to the total_demanded property of this OccOverviewSummary.
+ :type total_demanded: int
+
+ :param total_supplied:
+ The value to assign to the total_supplied property of this OccOverviewSummary.
+ :type total_supplied: int
+
+ :param total_rejected:
+ The value to assign to the total_rejected property of this OccOverviewSummary.
+ :type total_rejected: int
+
+ :param total_cancelled:
+ The value to assign to the total_cancelled property of this OccOverviewSummary.
+ :type total_cancelled: int
+
+ :param total_unfulfilled:
+ The value to assign to the total_unfulfilled property of this OccOverviewSummary.
+ :type total_unfulfilled: int
+
+ :param workload_type_breakdown_blob:
+ The value to assign to the workload_type_breakdown_blob property of this OccOverviewSummary.
+ :type workload_type_breakdown_blob: str
+
+ :param capacity_requests_blob:
+ The value to assign to the capacity_requests_blob property of this OccOverviewSummary.
+ :type capacity_requests_blob: str
+
+ :param unit:
+ The value to assign to the unit property of this OccOverviewSummary.
+ :type unit: str
+
+ """
+ self.swagger_types = {
+ 'compartment_id': 'str',
+ 'period_value': 'str',
+ 'resource_name': 'str',
+ 'total_available': 'int',
+ 'total_demanded': 'int',
+ 'total_supplied': 'int',
+ 'total_rejected': 'int',
+ 'total_cancelled': 'int',
+ 'total_unfulfilled': 'int',
+ 'workload_type_breakdown_blob': 'str',
+ 'capacity_requests_blob': 'str',
+ 'unit': 'str'
+ }
+
+ self.attribute_map = {
+ 'compartment_id': 'compartmentId',
+ 'period_value': 'periodValue',
+ 'resource_name': 'resourceName',
+ 'total_available': 'totalAvailable',
+ 'total_demanded': 'totalDemanded',
+ 'total_supplied': 'totalSupplied',
+ 'total_rejected': 'totalRejected',
+ 'total_cancelled': 'totalCancelled',
+ 'total_unfulfilled': 'totalUnfulfilled',
+ 'workload_type_breakdown_blob': 'workloadTypeBreakdownBlob',
+ 'capacity_requests_blob': 'capacityRequestsBlob',
+ 'unit': 'unit'
+ }
+
+ self._compartment_id = None
+ self._period_value = None
+ self._resource_name = None
+ self._total_available = None
+ self._total_demanded = None
+ self._total_supplied = None
+ self._total_rejected = None
+ self._total_cancelled = None
+ self._total_unfulfilled = None
+ self._workload_type_breakdown_blob = None
+ self._capacity_requests_blob = None
+ self._unit = None
+
+ @property
+ def compartment_id(self):
+ """
+ **[Required]** Gets the compartment_id of this OccOverviewSummary.
+ The OCID of the compartment from which the api call is made. This will be used for authorizing the request.
+
+
+ :return: The compartment_id of this OccOverviewSummary.
+ :rtype: str
+ """
+ return self._compartment_id
+
+ @compartment_id.setter
+ def compartment_id(self, compartment_id):
+ """
+ Sets the compartment_id of this OccOverviewSummary.
+ The OCID of the compartment from which the api call is made. This will be used for authorizing the request.
+
+
+ :param compartment_id: The compartment_id of this OccOverviewSummary.
+ :type: str
+ """
+ self._compartment_id = compartment_id
+
+ @property
+ def period_value(self):
+ """
+ **[Required]** Gets the period_value of this OccOverviewSummary.
+ The name of the month along with year for which this summary corresponds to.
+
+
+ :return: The period_value of this OccOverviewSummary.
+ :rtype: str
+ """
+ return self._period_value
+
+ @period_value.setter
+ def period_value(self, period_value):
+ """
+ Sets the period_value of this OccOverviewSummary.
+ The name of the month along with year for which this summary corresponds to.
+
+
+ :param period_value: The period_value of this OccOverviewSummary.
+ :type: str
+ """
+ self._period_value = period_value
+
+ @property
+ def resource_name(self):
+ """
+ **[Required]** Gets the resource_name of this OccOverviewSummary.
+ The name of the resource for which we have aggregated the value.
+
+
+ :return: The resource_name of this OccOverviewSummary.
+ :rtype: str
+ """
+ return self._resource_name
+
+ @resource_name.setter
+ def resource_name(self, resource_name):
+ """
+ Sets the resource_name of this OccOverviewSummary.
+ The name of the resource for which we have aggregated the value.
+
+
+ :param resource_name: The resource_name of this OccOverviewSummary.
+ :type: str
+ """
+ self._resource_name = resource_name
+
+ @property
+ def total_available(self):
+ """
+ **[Required]** Gets the total_available of this OccOverviewSummary.
+ The quantity of the resource which is available at the end of the period of aggregationDetails model in consideration.
+
+
+ :return: The total_available of this OccOverviewSummary.
+ :rtype: int
+ """
+ return self._total_available
+
+ @total_available.setter
+ def total_available(self, total_available):
+ """
+ Sets the total_available of this OccOverviewSummary.
+ The quantity of the resource which is available at the end of the period of aggregationDetails model in consideration.
+
+
+ :param total_available: The total_available of this OccOverviewSummary.
+ :type: int
+ """
+ self._total_available = total_available
+
+ @property
+ def total_demanded(self):
+ """
+ **[Required]** Gets the total_demanded of this OccOverviewSummary.
+ The quantity of the resource which is demanded by customers via capacity requests against the resource name at the end of the time period in consideration for overview.
+
+
+ :return: The total_demanded of this OccOverviewSummary.
+ :rtype: int
+ """
+ return self._total_demanded
+
+ @total_demanded.setter
+ def total_demanded(self, total_demanded):
+ """
+ Sets the total_demanded of this OccOverviewSummary.
+ The quantity of the resource which is demanded by customers via capacity requests against the resource name at the end of the time period in consideration for overview.
+
+
+ :param total_demanded: The total_demanded of this OccOverviewSummary.
+ :type: int
+ """
+ self._total_demanded = total_demanded
+
+ @property
+ def total_supplied(self):
+ """
+ **[Required]** Gets the total_supplied of this OccOverviewSummary.
+ The quantity of the resource which is supplied by Oracle to the customer against the resource name at the end of the time period in consideration.
+
+
+ :return: The total_supplied of this OccOverviewSummary.
+ :rtype: int
+ """
+ return self._total_supplied
+
+ @total_supplied.setter
+ def total_supplied(self, total_supplied):
+ """
+ Sets the total_supplied of this OccOverviewSummary.
+ The quantity of the resource which is supplied by Oracle to the customer against the resource name at the end of the time period in consideration.
+
+
+ :param total_supplied: The total_supplied of this OccOverviewSummary.
+ :type: int
+ """
+ self._total_supplied = total_supplied
+
+ @property
+ def total_rejected(self):
+ """
+ **[Required]** Gets the total_rejected of this OccOverviewSummary.
+ The quantity of the resource which is rejected by Oracle.
+
+
+ :return: The total_rejected of this OccOverviewSummary.
+ :rtype: int
+ """
+ return self._total_rejected
+
+ @total_rejected.setter
+ def total_rejected(self, total_rejected):
+ """
+ Sets the total_rejected of this OccOverviewSummary.
+ The quantity of the resource which is rejected by Oracle.
+
+
+ :param total_rejected: The total_rejected of this OccOverviewSummary.
+ :type: int
+ """
+ self._total_rejected = total_rejected
+
+ @property
+ def total_cancelled(self):
+ """
+ **[Required]** Gets the total_cancelled of this OccOverviewSummary.
+ The quantity of the resource which is cancelled by the customer. Once the capacity request was submitted, the customer can still cancel it. This field sums up those values.
+
+
+ :return: The total_cancelled of this OccOverviewSummary.
+ :rtype: int
+ """
+ return self._total_cancelled
+
+ @total_cancelled.setter
+ def total_cancelled(self, total_cancelled):
+ """
+ Sets the total_cancelled of this OccOverviewSummary.
+ The quantity of the resource which is cancelled by the customer. Once the capacity request was submitted, the customer can still cancel it. This field sums up those values.
+
+
+ :param total_cancelled: The total_cancelled of this OccOverviewSummary.
+ :type: int
+ """
+ self._total_cancelled = total_cancelled
+
+ @property
+ def total_unfulfilled(self):
+ """
+ **[Required]** Gets the total_unfulfilled of this OccOverviewSummary.
+ The quantity of the resource which Oracle was unable to supply. For a given capacity request, Oracle sometimes cannot supply the entire value demanded by the customer. In such cases a partial value is provided, thereby leaving behind a portion of unfulfilled values. This field sums that up.
+
+
+ :return: The total_unfulfilled of this OccOverviewSummary.
+ :rtype: int
+ """
+ return self._total_unfulfilled
+
+ @total_unfulfilled.setter
+ def total_unfulfilled(self, total_unfulfilled):
+ """
+ Sets the total_unfulfilled of this OccOverviewSummary.
+ The quantity of the resource which Oracle was unable to supply. For a given capacity request, Oracle sometimes cannot supply the entire value demanded by the customer. In such cases a partial value is provided, thereby leaving behind a portion of unfulfilled values. This field sums that up.
+
+
+ :param total_unfulfilled: The total_unfulfilled of this OccOverviewSummary.
+ :type: int
+ """
+ self._total_unfulfilled = total_unfulfilled
+
+ @property
+ def workload_type_breakdown_blob(self):
+ """
+ **[Required]** Gets the workload_type_breakdown_blob of this OccOverviewSummary.
+ A raw json blob containing breakdown of totalAvailable, totalDemanded, totalSupplied, totalRejected, totalCancelled and totalUnfulfilled by workload types
+
+
+ :return: The workload_type_breakdown_blob of this OccOverviewSummary.
+ :rtype: str
+ """
+ return self._workload_type_breakdown_blob
+
+ @workload_type_breakdown_blob.setter
+ def workload_type_breakdown_blob(self, workload_type_breakdown_blob):
+ """
+ Sets the workload_type_breakdown_blob of this OccOverviewSummary.
+ A raw json blob containing breakdown of totalAvailable, totalDemanded, totalSupplied, totalRejected, totalCancelled and totalUnfulfilled by workload types
+
+
+ :param workload_type_breakdown_blob: The workload_type_breakdown_blob of this OccOverviewSummary.
+ :type: str
+ """
+ self._workload_type_breakdown_blob = workload_type_breakdown_blob
+
+ @property
+ def capacity_requests_blob(self):
+ """
+ Gets the capacity_requests_blob of this OccOverviewSummary.
+ A raw json blob containing all the capacity requests corresponding to the resource name
+
+
+ :return: The capacity_requests_blob of this OccOverviewSummary.
+ :rtype: str
+ """
+ return self._capacity_requests_blob
+
+ @capacity_requests_blob.setter
+ def capacity_requests_blob(self, capacity_requests_blob):
+ """
+ Sets the capacity_requests_blob of this OccOverviewSummary.
+ A raw json blob containing all the capacity requests corresponding to the resource name
+
+
+ :param capacity_requests_blob: The capacity_requests_blob of this OccOverviewSummary.
+ :type: str
+ """
+ self._capacity_requests_blob = capacity_requests_blob
+
+ @property
+ def unit(self):
+ """
+ **[Required]** Gets the unit of this OccOverviewSummary.
+ The unit e.g SERVER in which the above values like totalAvailable, totalSupplied etc is measured.
+
+
+ :return: The unit of this OccOverviewSummary.
+ :rtype: str
+ """
+ return self._unit
+
+ @unit.setter
+ def unit(self, unit):
+ """
+ Sets the unit of this OccOverviewSummary.
+ The unit e.g SERVER in which the above values like totalAvailable, totalSupplied etc is measured.
+
+
+ :param unit: The unit of this OccOverviewSummary.
+ :type: str
+ """
+ self._unit = unit
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/database/models/database_connection_credentials_by_details.py b/src/oci/database/models/database_connection_credentials_by_details.py
index 23d01e986..8e8fa545c 100644
--- a/src/oci/database/models/database_connection_credentials_by_details.py
+++ b/src/oci/database/models/database_connection_credentials_by_details.py
@@ -24,6 +24,10 @@ class DatabaseConnectionCredentialsByDetails(DatabaseConnectionCredentials):
#: This constant has a value of "NORMAL"
ROLE_NORMAL = "NORMAL"
+ #: A constant which can be used with the role property of a DatabaseConnectionCredentialsByDetails.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new DatabaseConnectionCredentialsByDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.database.models.DatabaseConnectionCredentialsByDetails.credential_type` attribute
@@ -50,7 +54,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this DatabaseConnectionCredentialsByDetails.
- Allowed values for this property are: "SYSDBA", "NORMAL", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type role: str
@@ -172,7 +176,7 @@ def role(self):
**[Required]** Gets the role of this DatabaseConnectionCredentialsByDetails.
The role of the user that will be connecting to the database.
- Allowed values for this property are: "SYSDBA", "NORMAL", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -191,7 +195,7 @@ def role(self, role):
:param role: The role of this DatabaseConnectionCredentialsByDetails.
:type: str
"""
- allowed_values = ["SYSDBA", "NORMAL"]
+ allowed_values = ["SYSDBA", "NORMAL", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
role = 'UNKNOWN_ENUM_VALUE'
self._role = role
diff --git a/src/oci/database/models/database_ssl_connection_credentials.py b/src/oci/database/models/database_ssl_connection_credentials.py
index 689c3b622..d127a4c60 100644
--- a/src/oci/database/models/database_ssl_connection_credentials.py
+++ b/src/oci/database/models/database_ssl_connection_credentials.py
@@ -23,6 +23,10 @@ class DatabaseSslConnectionCredentials(DatabaseConnectionCredentials):
#: This constant has a value of "NORMAL"
ROLE_NORMAL = "NORMAL"
+ #: A constant which can be used with the role property of a DatabaseSslConnectionCredentials.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new DatabaseSslConnectionCredentials object with values from keyword arguments. The default value of the :py:attr:`~oci.database.models.DatabaseSslConnectionCredentials.credential_type` attribute
@@ -49,7 +53,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this DatabaseSslConnectionCredentials.
- Allowed values for this property are: "SYSDBA", "NORMAL", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type role: str
@@ -178,7 +182,7 @@ def role(self):
**[Required]** Gets the role of this DatabaseSslConnectionCredentials.
The role of the user that will be connecting to the database.
- Allowed values for this property are: "SYSDBA", "NORMAL", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -197,7 +201,7 @@ def role(self, role):
:param role: The role of this DatabaseSslConnectionCredentials.
:type: str
"""
- allowed_values = ["SYSDBA", "NORMAL"]
+ allowed_values = ["SYSDBA", "NORMAL", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
role = 'UNKNOWN_ENUM_VALUE'
self._role = role
diff --git a/src/oci/database/models/enable_database_management_details.py b/src/oci/database/models/enable_database_management_details.py
index 4081bc587..556964f9b 100644
--- a/src/oci/database/models/enable_database_management_details.py
+++ b/src/oci/database/models/enable_database_management_details.py
@@ -39,6 +39,10 @@ class EnableDatabaseManagementDetails(object):
#: This constant has a value of "NORMAL"
ROLE_NORMAL = "NORMAL"
+ #: A constant which can be used with the role property of a EnableDatabaseManagementDetails.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new EnableDatabaseManagementDetails object with values from keyword arguments.
@@ -76,7 +80,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this EnableDatabaseManagementDetails.
- Allowed values for this property are: "SYSDBA", "NORMAL"
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG"
:type role: str
"""
@@ -305,7 +309,7 @@ def role(self):
Gets the role of this EnableDatabaseManagementDetails.
The role of the user that will be connecting to the database.
- Allowed values for this property are: "SYSDBA", "NORMAL"
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG"
:return: The role of this EnableDatabaseManagementDetails.
@@ -323,7 +327,7 @@ def role(self, role):
:param role: The role of this EnableDatabaseManagementDetails.
:type: str
"""
- allowed_values = ["SYSDBA", "NORMAL"]
+ allowed_values = ["SYSDBA", "NORMAL", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
raise ValueError(
f"Invalid value for `role`, must be None or one of {allowed_values}"
diff --git a/src/oci/database/models/enable_pluggable_database_management_details.py b/src/oci/database/models/enable_pluggable_database_management_details.py
index 387affc63..79b02c6d0 100644
--- a/src/oci/database/models/enable_pluggable_database_management_details.py
+++ b/src/oci/database/models/enable_pluggable_database_management_details.py
@@ -31,6 +31,10 @@ class EnablePluggableDatabaseManagementDetails(object):
#: This constant has a value of "NORMAL"
ROLE_NORMAL = "NORMAL"
+ #: A constant which can be used with the role property of a EnablePluggableDatabaseManagementDetails.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new EnablePluggableDatabaseManagementDetails object with values from keyword arguments.
@@ -63,7 +67,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this EnablePluggableDatabaseManagementDetails.
- Allowed values for this property are: "SYSDBA", "NORMAL"
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG"
:type role: str
"""
@@ -258,7 +262,7 @@ def role(self):
Gets the role of this EnablePluggableDatabaseManagementDetails.
The role of the user that will be connecting to the pluggable database.
- Allowed values for this property are: "SYSDBA", "NORMAL"
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG"
:return: The role of this EnablePluggableDatabaseManagementDetails.
@@ -276,7 +280,7 @@ def role(self, role):
:param role: The role of this EnablePluggableDatabaseManagementDetails.
:type: str
"""
- allowed_values = ["SYSDBA", "NORMAL"]
+ allowed_values = ["SYSDBA", "NORMAL", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
raise ValueError(
f"Invalid value for `role`, must be None or one of {allowed_values}"
diff --git a/src/oci/database/models/modify_database_management_details.py b/src/oci/database/models/modify_database_management_details.py
index 769c31fe3..2818efb55 100644
--- a/src/oci/database/models/modify_database_management_details.py
+++ b/src/oci/database/models/modify_database_management_details.py
@@ -39,6 +39,10 @@ class ModifyDatabaseManagementDetails(object):
#: This constant has a value of "NORMAL"
ROLE_NORMAL = "NORMAL"
+ #: A constant which can be used with the role property of a ModifyDatabaseManagementDetails.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new ModifyDatabaseManagementDetails object with values from keyword arguments.
@@ -76,7 +80,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this ModifyDatabaseManagementDetails.
- Allowed values for this property are: "SYSDBA", "NORMAL"
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG"
:type role: str
"""
@@ -305,7 +309,7 @@ def role(self):
Gets the role of this ModifyDatabaseManagementDetails.
The role of the user that will be connecting to the database.
- Allowed values for this property are: "SYSDBA", "NORMAL"
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG"
:return: The role of this ModifyDatabaseManagementDetails.
@@ -323,7 +327,7 @@ def role(self, role):
:param role: The role of this ModifyDatabaseManagementDetails.
:type: str
"""
- allowed_values = ["SYSDBA", "NORMAL"]
+ allowed_values = ["SYSDBA", "NORMAL", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
raise ValueError(
f"Invalid value for `role`, must be None or one of {allowed_values}"
diff --git a/src/oci/database/models/modify_pluggable_database_management_details.py b/src/oci/database/models/modify_pluggable_database_management_details.py
index 90922967d..2d1bb3cc0 100644
--- a/src/oci/database/models/modify_pluggable_database_management_details.py
+++ b/src/oci/database/models/modify_pluggable_database_management_details.py
@@ -31,6 +31,10 @@ class ModifyPluggableDatabaseManagementDetails(object):
#: This constant has a value of "NORMAL"
ROLE_NORMAL = "NORMAL"
+ #: A constant which can be used with the role property of a ModifyPluggableDatabaseManagementDetails.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new ModifyPluggableDatabaseManagementDetails object with values from keyword arguments.
@@ -63,7 +67,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this ModifyPluggableDatabaseManagementDetails.
- Allowed values for this property are: "SYSDBA", "NORMAL"
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG"
:type role: str
"""
@@ -258,7 +262,7 @@ def role(self):
Gets the role of this ModifyPluggableDatabaseManagementDetails.
The role of the user that will be connecting to the database.
- Allowed values for this property are: "SYSDBA", "NORMAL"
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG"
:return: The role of this ModifyPluggableDatabaseManagementDetails.
@@ -276,7 +280,7 @@ def role(self, role):
:param role: The role of this ModifyPluggableDatabaseManagementDetails.
:type: str
"""
- allowed_values = ["SYSDBA", "NORMAL"]
+ allowed_values = ["SYSDBA", "NORMAL", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
raise ValueError(
f"Invalid value for `role`, must be None or one of {allowed_values}"
diff --git a/src/oci/database_management/db_management_client.py b/src/oci/database_management/db_management_client.py
index 70511e4e5..bd8bb2ce2 100644
--- a/src/oci/database_management/db_management_client.py
+++ b/src/oci/database_management/db_management_client.py
@@ -8212,6 +8212,135 @@ def get_database_home_metrics(self, managed_database_id, start_time, end_time, *
api_reference_link=api_reference_link,
required_arguments=required_arguments)
+ def get_dataguard_performance_metrics(self, managed_database_id, start_time, end_time, **kwargs):
+ """
+ Gets a historical summary of the Database Guard performance metrics for Managed Databases.
+ If the peerDatabaseCompartmentId is specified, then the metrics are only retrieved from the specified compartment.
+ If the peerDatabaseCompartmentId is not specified, then the metrics are retrieved from the compartment of the Managed Database specified by the ManagedDatabaseId.
+
+
+ :param str managed_database_id: (required)
+ The `OCID`__ of the Managed Database.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+ :param str start_time: (required)
+ The start time of the time range to retrieve the health metrics of a Managed Database
+ in UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".
+
+ :param str end_time: (required)
+ The end time of the time range to retrieve the health metrics of a Managed Database
+ in UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".
+
+ :param str opc_request_id: (optional)
+ The client request ID for tracing.
+
+ :param str peer_database_compartment_id: (optional)
+ The `OCID`__ of the compartment for which peer database metrics are required.
+ This is not a mandatory parameter and in its absence, all the peer database metrics are returned.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+ :param str filter_by_metric_names: (optional)
+ The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.
+
+ :param obj retry_strategy: (optional)
+ A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.
+
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation will not retry by default, users can also use the convenient :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` provided by the SDK to enable retries for it.
+ The specifics of the default retry strategy are described `here `__.
+
+ To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.
+
+ :param bool allow_control_chars: (optional)
+ allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
+ By default, the response will not allow control characters in strings
+
+ :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.database_management.models.DataguardPerformanceMetrics`
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use get_dataguard_performance_metrics API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['managedDatabaseId', 'startTime', 'endTime']
+ resource_path = "/managedDatabases/{managedDatabaseId}/dataguardPerformanceMetrics"
+ method = "GET"
+ operation_name = "get_dataguard_performance_metrics"
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/database-management/20201101/DataguardPerformanceMetrics/GetDataguardPerformanceMetrics"
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "opc_request_id",
+ "peer_database_compartment_id",
+ "filter_by_metric_names"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"get_dataguard_performance_metrics got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "managedDatabaseId": managed_database_id
+ }
+
+ path_params = {k: v for (k, v) in six.iteritems(path_params) if v is not missing}
+
+ for (k, v) in six.iteritems(path_params):
+ if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0):
+ raise ValueError(f'Parameter {k} cannot be None, whitespace or empty string')
+
+ query_params = {
+ "startTime": start_time,
+ "endTime": end_time,
+ "peerDatabaseCompartmentId": kwargs.get("peer_database_compartment_id", missing),
+ "filterByMetricNames": kwargs.get("filter_by_metric_names", missing)
+ }
+ query_params = {k: v for (k, v) in six.iteritems(query_params) if v is not missing and v is not None}
+
+ header_params = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ "opc-request-id": kwargs.get("opc_request_id", missing)
+ }
+ header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None}
+
+ retry_strategy = self.base_client.get_preferred_retry_strategy(
+ operation_retry_strategy=kwargs.get('retry_strategy'),
+ client_retry_strategy=self.retry_strategy
+ )
+
+ if retry_strategy:
+ if not isinstance(retry_strategy, retry.NoneRetryStrategy):
+ self.base_client.add_opc_client_retries_header(header_params)
+ retry_strategy.add_circuit_breaker_callback(self.circuit_breaker_callback)
+ return retry_strategy.make_retrying_call(
+ self.base_client.call_api,
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ query_params=query_params,
+ header_params=header_params,
+ response_type="DataguardPerformanceMetrics",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+ else:
+ return self.base_client.call_api(
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ query_params=query_params,
+ header_params=header_params,
+ response_type="DataguardPerformanceMetrics",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+
def get_db_management_private_endpoint(self, db_management_private_endpoint_id, **kwargs):
"""
Gets the details of a specific Database Management private endpoint.
@@ -11083,6 +11212,149 @@ def get_pdb_metrics(self, managed_database_id, start_time, end_time, **kwargs):
api_reference_link=api_reference_link,
required_arguments=required_arguments)
+ def get_peer_database_metrics(self, managed_database_id, start_time, end_time, **kwargs):
+ """
+ Gets a comparative summary of the baseline and target values of the Data Guard performance metrics for Managed Databases.
+ If the peerDatabaseCompartmentId is specified, then the metrics are only retrieved from the specified compartment.
+ If the peerDatabaseCompartmentId is not specified, then the metrics are retrieved from the compartment of the Managed Database specified by the ManagedDatabaseId.
+
+
+ :param str managed_database_id: (required)
+ The `OCID`__ of the Managed Database.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+ :param str start_time: (required)
+ The start time of the time range to retrieve the health metrics of a Managed Database
+ in UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".
+
+ :param str end_time: (required)
+ The end time of the time range to retrieve the health metrics of a Managed Database
+ in UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".
+
+ :param str opc_request_id: (optional)
+ The client request ID for tracing.
+
+ :param str peer_database_compartment_id: (optional)
+ The `OCID`__ of the compartment for which peer database metrics are required.
+ This is not a mandatory parameter and in its absence, all the peer database metrics are returned.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+ :param str compare_type: (optional)
+ The time window used for metrics comparison.
+
+ Allowed values are: "HOUR", "DAY", "WEEK"
+
+ :param str filter_by_metric_names: (optional)
+ The filter used to retrieve a specific set of metrics by passing the desired metric names with a comma separator. Note that, by default, the service returns all supported metrics.
+
+ :param obj retry_strategy: (optional)
+ A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.
+
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation will not retry by default, users can also use the convenient :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` provided by the SDK to enable retries for it.
+ The specifics of the default retry strategy are described `here `__.
+
+ To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.
+
+ :param bool allow_control_chars: (optional)
+ allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
+ By default, the response will not allow control characters in strings
+
+ :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.database_management.models.PeerDatabaseMetrics`
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use get_peer_database_metrics API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['managedDatabaseId', 'startTime', 'endTime']
+ resource_path = "/managedDatabases/{managedDatabaseId}/peerDatabaseMetrics"
+ method = "GET"
+ operation_name = "get_peer_database_metrics"
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/database-management/20201101/PeerDatabaseMetrics/GetPeerDatabaseMetrics"
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "opc_request_id",
+ "peer_database_compartment_id",
+ "compare_type",
+ "filter_by_metric_names"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"get_peer_database_metrics got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "managedDatabaseId": managed_database_id
+ }
+
+ path_params = {k: v for (k, v) in six.iteritems(path_params) if v is not missing}
+
+ for (k, v) in six.iteritems(path_params):
+ if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0):
+ raise ValueError(f'Parameter {k} cannot be None, whitespace or empty string')
+
+ if 'compare_type' in kwargs:
+ compare_type_allowed_values = ["HOUR", "DAY", "WEEK"]
+ if kwargs['compare_type'] not in compare_type_allowed_values:
+ raise ValueError(
+ f"Invalid value for `compare_type`, must be one of { compare_type_allowed_values }"
+ )
+
+ query_params = {
+ "startTime": start_time,
+ "endTime": end_time,
+ "peerDatabaseCompartmentId": kwargs.get("peer_database_compartment_id", missing),
+ "compareType": kwargs.get("compare_type", missing),
+ "filterByMetricNames": kwargs.get("filter_by_metric_names", missing)
+ }
+ query_params = {k: v for (k, v) in six.iteritems(query_params) if v is not missing and v is not None}
+
+ header_params = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ "opc-request-id": kwargs.get("opc_request_id", missing)
+ }
+ header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None}
+
+ retry_strategy = self.base_client.get_preferred_retry_strategy(
+ operation_retry_strategy=kwargs.get('retry_strategy'),
+ client_retry_strategy=self.retry_strategy
+ )
+
+ if retry_strategy:
+ if not isinstance(retry_strategy, retry.NoneRetryStrategy):
+ self.base_client.add_opc_client_retries_header(header_params)
+ retry_strategy.add_circuit_breaker_callback(self.circuit_breaker_callback)
+ return retry_strategy.make_retrying_call(
+ self.base_client.call_api,
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ query_params=query_params,
+ header_params=header_params,
+ response_type="PeerDatabaseMetrics",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+ else:
+ return self.base_client.call_api(
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ query_params=query_params,
+ header_params=header_params,
+ response_type="PeerDatabaseMetrics",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+
def get_preferred_credential(self, managed_database_id, credential_name, **kwargs):
"""
Gets the preferred credential details for a Managed Database based on credentialName.
diff --git a/src/oci/database_management/models/__init__.py b/src/oci/database_management/models/__init__.py
index 37143f47a..18b8c6c00 100644
--- a/src/oci/database_management/models/__init__.py
+++ b/src/oci/database_management/models/__init__.py
@@ -99,6 +99,7 @@
from .cursor_cache_statement_summary import CursorCacheStatementSummary
from .data_access_container_collection import DataAccessContainerCollection
from .data_access_container_summary import DataAccessContainerSummary
+from .data_points import DataPoints
from .database_connection_credentails_by_name import DatabaseConnectionCredentailsByName
from .database_connection_credentials import DatabaseConnectionCredentials
from .database_connection_credentials_by_details import DatabaseConnectionCredentialsByDetails
@@ -130,6 +131,7 @@
from .database_time_aggregate_metrics import DatabaseTimeAggregateMetrics
from .database_usage_metrics import DatabaseUsageMetrics
from .datafile import Datafile
+from .dataguard_performance_metrics import DataguardPerformanceMetrics
from .db_management_analytics_metric import DbManagementAnalyticsMetric
from .db_management_private_endpoint import DbManagementPrivateEndpoint
from .db_management_private_endpoint_collection import DbManagementPrivateEndpointCollection
@@ -361,6 +363,9 @@
from .patch_merge_instruction import PatchMergeInstruction
from .pdb_metrics import PdbMetrics
from .pdb_status_details import PdbStatusDetails
+from .peer_database_metrics import PeerDatabaseMetrics
+from .performance_metrics import PerformanceMetrics
+from .performance_metrics_data import PerformanceMetricsData
from .preferred_credential import PreferredCredential
from .preferred_credential_collection import PreferredCredentialCollection
from .preferred_credential_summary import PreferredCredentialSummary
@@ -588,6 +593,7 @@
"CursorCacheStatementSummary": CursorCacheStatementSummary,
"DataAccessContainerCollection": DataAccessContainerCollection,
"DataAccessContainerSummary": DataAccessContainerSummary,
+ "DataPoints": DataPoints,
"DatabaseConnectionCredentailsByName": DatabaseConnectionCredentailsByName,
"DatabaseConnectionCredentials": DatabaseConnectionCredentials,
"DatabaseConnectionCredentialsByDetails": DatabaseConnectionCredentialsByDetails,
@@ -619,6 +625,7 @@
"DatabaseTimeAggregateMetrics": DatabaseTimeAggregateMetrics,
"DatabaseUsageMetrics": DatabaseUsageMetrics,
"Datafile": Datafile,
+ "DataguardPerformanceMetrics": DataguardPerformanceMetrics,
"DbManagementAnalyticsMetric": DbManagementAnalyticsMetric,
"DbManagementPrivateEndpoint": DbManagementPrivateEndpoint,
"DbManagementPrivateEndpointCollection": DbManagementPrivateEndpointCollection,
@@ -850,6 +857,9 @@
"PatchMergeInstruction": PatchMergeInstruction,
"PdbMetrics": PdbMetrics,
"PdbStatusDetails": PdbStatusDetails,
+ "PeerDatabaseMetrics": PeerDatabaseMetrics,
+ "PerformanceMetrics": PerformanceMetrics,
+ "PerformanceMetricsData": PerformanceMetricsData,
"PreferredCredential": PreferredCredential,
"PreferredCredentialCollection": PreferredCredentialCollection,
"PreferredCredentialSummary": PreferredCredentialSummary,
diff --git a/src/oci/database_management/models/basic_named_credential_content.py b/src/oci/database_management/models/basic_named_credential_content.py
index 7e55e8ddd..15c2d1093 100644
--- a/src/oci/database_management/models/basic_named_credential_content.py
+++ b/src/oci/database_management/models/basic_named_credential_content.py
@@ -23,6 +23,10 @@ class BasicNamedCredentialContent(NamedCredentialContent):
#: This constant has a value of "SYSDBA"
ROLE_SYSDBA = "SYSDBA"
+ #: A constant which can be used with the role property of a BasicNamedCredentialContent.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
#: A constant which can be used with the password_secret_access_mode property of a BasicNamedCredentialContent.
#: This constant has a value of "USER_PRINCIPAL"
PASSWORD_SECRET_ACCESS_MODE_USER_PRINCIPAL = "USER_PRINCIPAL"
@@ -49,7 +53,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this BasicNamedCredentialContent.
- Allowed values for this property are: "NORMAL", "SYSDBA", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type role: str
@@ -117,7 +121,7 @@ def role(self):
**[Required]** Gets the role of this BasicNamedCredentialContent.
The role of the database user.
- Allowed values for this property are: "NORMAL", "SYSDBA", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -136,7 +140,7 @@ def role(self, role):
:param role: The role of this BasicNamedCredentialContent.
:type: str
"""
- allowed_values = ["NORMAL", "SYSDBA"]
+ allowed_values = ["NORMAL", "SYSDBA", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
role = 'UNKNOWN_ENUM_VALUE'
self._role = role
diff --git a/src/oci/database_management/models/basic_preferred_credential.py b/src/oci/database_management/models/basic_preferred_credential.py
index 27b0a5a55..a9106242f 100644
--- a/src/oci/database_management/models/basic_preferred_credential.py
+++ b/src/oci/database_management/models/basic_preferred_credential.py
@@ -23,6 +23,10 @@ class BasicPreferredCredential(PreferredCredential):
#: This constant has a value of "SYSDBA"
ROLE_SYSDBA = "SYSDBA"
+ #: A constant which can be used with the role property of a BasicPreferredCredential.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new BasicPreferredCredential object with values from keyword arguments. The default value of the :py:attr:`~oci.database_management.models.BasicPreferredCredential.type` attribute
@@ -55,7 +59,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this BasicPreferredCredential.
- Allowed values for this property are: "NORMAL", "SYSDBA", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type role: str
@@ -123,7 +127,7 @@ def role(self):
Gets the role of this BasicPreferredCredential.
The role of the database user.
- Allowed values for this property are: "NORMAL", "SYSDBA", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -142,7 +146,7 @@ def role(self, role):
:param role: The role of this BasicPreferredCredential.
:type: str
"""
- allowed_values = ["NORMAL", "SYSDBA"]
+ allowed_values = ["NORMAL", "SYSDBA", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
role = 'UNKNOWN_ENUM_VALUE'
self._role = role
diff --git a/src/oci/database_management/models/data_points.py b/src/oci/database_management/models/data_points.py
new file mode 100644
index 000000000..9688f87c0
--- /dev/null
+++ b/src/oci/database_management/models/data_points.py
@@ -0,0 +1,103 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20201101
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class DataPoints(object):
+ """
+ The aggregated datapoints of the metric.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new DataPoints object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param timestamp:
+ The value to assign to the timestamp property of this DataPoints.
+ :type timestamp: datetime
+
+ :param value:
+ The value to assign to the value property of this DataPoints.
+ :type value: float
+
+ """
+ self.swagger_types = {
+ 'timestamp': 'datetime',
+ 'value': 'float'
+ }
+
+ self.attribute_map = {
+ 'timestamp': 'timestamp',
+ 'value': 'value'
+ }
+
+ self._timestamp = None
+ self._value = None
+
+ @property
+ def timestamp(self):
+ """
+ Gets the timestamp of this DataPoints.
+ The data point date and time in UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".
+
+
+ :return: The timestamp of this DataPoints.
+ :rtype: datetime
+ """
+ return self._timestamp
+
+ @timestamp.setter
+ def timestamp(self, timestamp):
+ """
+ Sets the timestamp of this DataPoints.
+ The data point date and time in UTC in ISO-8601 format, which is \"yyyy-MM-dd'T'hh:mm:ss.sss'Z'\".
+
+
+ :param timestamp: The timestamp of this DataPoints.
+ :type: datetime
+ """
+ self._timestamp = timestamp
+
+ @property
+ def value(self):
+ """
+ Gets the value of this DataPoints.
+ The value of the metric.
+
+
+ :return: The value of this DataPoints.
+ :rtype: float
+ """
+ return self._value
+
+ @value.setter
+ def value(self, value):
+ """
+ Sets the value of this DataPoints.
+ The value of the metric.
+
+
+ :param value: The value of this DataPoints.
+ :type: float
+ """
+ self._value = value
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/database_management/models/database_connection_credentials_by_details.py b/src/oci/database_management/models/database_connection_credentials_by_details.py
index 7f0267a05..bab9079fb 100644
--- a/src/oci/database_management/models/database_connection_credentials_by_details.py
+++ b/src/oci/database_management/models/database_connection_credentials_by_details.py
@@ -23,6 +23,10 @@ class DatabaseConnectionCredentialsByDetails(DatabaseConnectionCredentials):
#: This constant has a value of "NORMAL"
ROLE_NORMAL = "NORMAL"
+ #: A constant which can be used with the role property of a DatabaseConnectionCredentialsByDetails.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new DatabaseConnectionCredentialsByDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.database_management.models.DatabaseConnectionCredentialsByDetails.credential_type` attribute
@@ -49,7 +53,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this DatabaseConnectionCredentialsByDetails.
- Allowed values for this property are: "SYSDBA", "NORMAL", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type role: str
@@ -177,7 +181,7 @@ def role(self):
**[Required]** Gets the role of this DatabaseConnectionCredentialsByDetails.
The role of the user connecting to the database.
- Allowed values for this property are: "SYSDBA", "NORMAL", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -196,7 +200,7 @@ def role(self, role):
:param role: The role of this DatabaseConnectionCredentialsByDetails.
:type: str
"""
- allowed_values = ["SYSDBA", "NORMAL"]
+ allowed_values = ["SYSDBA", "NORMAL", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
role = 'UNKNOWN_ENUM_VALUE'
self._role = role
diff --git a/src/oci/database_management/models/database_password_credential_details.py b/src/oci/database_management/models/database_password_credential_details.py
index e00ca92ba..f1fa4b226 100644
--- a/src/oci/database_management/models/database_password_credential_details.py
+++ b/src/oci/database_management/models/database_password_credential_details.py
@@ -23,6 +23,10 @@ class DatabasePasswordCredentialDetails(DatabaseCredentialDetails):
#: This constant has a value of "SYSDBA"
ROLE_SYSDBA = "SYSDBA"
+ #: A constant which can be used with the role property of a DatabasePasswordCredentialDetails.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new DatabasePasswordCredentialDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.database_management.models.DatabasePasswordCredentialDetails.credential_type` attribute
@@ -45,7 +49,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this DatabasePasswordCredentialDetails.
- Allowed values for this property are: "NORMAL", "SYSDBA", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type role: str
@@ -124,7 +128,7 @@ def role(self):
Gets the role of this DatabasePasswordCredentialDetails.
The role of the database user.
- Allowed values for this property are: "NORMAL", "SYSDBA", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -143,7 +147,7 @@ def role(self, role):
:param role: The role of this DatabasePasswordCredentialDetails.
:type: str
"""
- allowed_values = ["NORMAL", "SYSDBA"]
+ allowed_values = ["NORMAL", "SYSDBA", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
role = 'UNKNOWN_ENUM_VALUE'
self._role = role
diff --git a/src/oci/database_management/models/database_secret_credential_details.py b/src/oci/database_management/models/database_secret_credential_details.py
index 409920b8c..76ab895b6 100644
--- a/src/oci/database_management/models/database_secret_credential_details.py
+++ b/src/oci/database_management/models/database_secret_credential_details.py
@@ -23,6 +23,10 @@ class DatabaseSecretCredentialDetails(DatabaseCredentialDetails):
#: This constant has a value of "SYSDBA"
ROLE_SYSDBA = "SYSDBA"
+ #: A constant which can be used with the role property of a DatabaseSecretCredentialDetails.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new DatabaseSecretCredentialDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.database_management.models.DatabaseSecretCredentialDetails.credential_type` attribute
@@ -45,7 +49,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this DatabaseSecretCredentialDetails.
- Allowed values for this property are: "NORMAL", "SYSDBA", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type role: str
@@ -130,7 +134,7 @@ def role(self):
Gets the role of this DatabaseSecretCredentialDetails.
The role of the database user.
- Allowed values for this property are: "NORMAL", "SYSDBA", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -149,7 +153,7 @@ def role(self, role):
:param role: The role of this DatabaseSecretCredentialDetails.
:type: str
"""
- allowed_values = ["NORMAL", "SYSDBA"]
+ allowed_values = ["NORMAL", "SYSDBA", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
role = 'UNKNOWN_ENUM_VALUE'
self._role = role
diff --git a/src/oci/database_management/models/database_ssl_connection_credentials.py b/src/oci/database_management/models/database_ssl_connection_credentials.py
index 7348a4cba..af74e4564 100644
--- a/src/oci/database_management/models/database_ssl_connection_credentials.py
+++ b/src/oci/database_management/models/database_ssl_connection_credentials.py
@@ -23,6 +23,10 @@ class DatabaseSslConnectionCredentials(DatabaseConnectionCredentials):
#: This constant has a value of "NORMAL"
ROLE_NORMAL = "NORMAL"
+ #: A constant which can be used with the role property of a DatabaseSslConnectionCredentials.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new DatabaseSslConnectionCredentials object with values from keyword arguments. The default value of the :py:attr:`~oci.database_management.models.DatabaseSslConnectionCredentials.credential_type` attribute
@@ -49,7 +53,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this DatabaseSslConnectionCredentials.
- Allowed values for this property are: "SYSDBA", "NORMAL", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type role: str
@@ -184,7 +188,7 @@ def role(self):
**[Required]** Gets the role of this DatabaseSslConnectionCredentials.
The role of the user connecting to the database.
- Allowed values for this property are: "SYSDBA", "NORMAL", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "SYSDBA", "NORMAL", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -203,7 +207,7 @@ def role(self, role):
:param role: The role of this DatabaseSslConnectionCredentials.
:type: str
"""
- allowed_values = ["SYSDBA", "NORMAL"]
+ allowed_values = ["SYSDBA", "NORMAL", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
role = 'UNKNOWN_ENUM_VALUE'
self._role = role
diff --git a/src/oci/database_management/models/database_usage_metrics.py b/src/oci/database_management/models/database_usage_metrics.py
index b37cf71a5..789343d31 100644
--- a/src/oci/database_management/models/database_usage_metrics.py
+++ b/src/oci/database_management/models/database_usage_metrics.py
@@ -99,6 +99,26 @@ class DatabaseUsageMetrics(object):
#: This constant has a value of "APEX"
WORKLOAD_TYPE_APEX = "APEX"
+ #: A constant which can be used with the db_role property of a DatabaseUsageMetrics.
+ #: This constant has a value of "SNAPSHOT_STANDBY"
+ DB_ROLE_SNAPSHOT_STANDBY = "SNAPSHOT_STANDBY"
+
+ #: A constant which can be used with the db_role property of a DatabaseUsageMetrics.
+ #: This constant has a value of "LOGICAL_STANDBY"
+ DB_ROLE_LOGICAL_STANDBY = "LOGICAL_STANDBY"
+
+ #: A constant which can be used with the db_role property of a DatabaseUsageMetrics.
+ #: This constant has a value of "PHYSICAL_STANDBY"
+ DB_ROLE_PHYSICAL_STANDBY = "PHYSICAL_STANDBY"
+
+ #: A constant which can be used with the db_role property of a DatabaseUsageMetrics.
+ #: This constant has a value of "PRIMARY"
+ DB_ROLE_PRIMARY = "PRIMARY"
+
+ #: A constant which can be used with the db_role property of a DatabaseUsageMetrics.
+ #: This constant has a value of "FAR_SYNC"
+ DB_ROLE_FAR_SYNC = "FAR_SYNC"
+
def __init__(self, **kwargs):
"""
Initializes a new DatabaseUsageMetrics object with values from keyword arguments.
@@ -148,6 +168,28 @@ def __init__(self, **kwargs):
The value to assign to the database_container_id property of this DatabaseUsageMetrics.
:type database_container_id: str
+ :param database_id:
+ The value to assign to the database_id property of this DatabaseUsageMetrics.
+ :type database_id: str
+
+ :param primary_db_id:
+ The value to assign to the primary_db_id property of this DatabaseUsageMetrics.
+ :type primary_db_id: str
+
+ :param primary_db_unique_name:
+ The value to assign to the primary_db_unique_name property of this DatabaseUsageMetrics.
+ :type primary_db_unique_name: str
+
+ :param db_unique_name:
+ The value to assign to the db_unique_name property of this DatabaseUsageMetrics.
+ :type db_unique_name: str
+
+ :param db_role:
+ The value to assign to the db_role property of this DatabaseUsageMetrics.
+ Allowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type db_role: str
+
:param metrics:
The value to assign to the metrics property of this DatabaseUsageMetrics.
:type metrics: list[oci.database_management.models.FleetMetricDefinition]
@@ -163,6 +205,11 @@ def __init__(self, **kwargs):
'workload_type': 'str',
'database_name': 'str',
'database_container_id': 'str',
+ 'database_id': 'str',
+ 'primary_db_id': 'str',
+ 'primary_db_unique_name': 'str',
+ 'db_unique_name': 'str',
+ 'db_role': 'str',
'metrics': 'list[FleetMetricDefinition]'
}
@@ -176,6 +223,11 @@ def __init__(self, **kwargs):
'workload_type': 'workloadType',
'database_name': 'databaseName',
'database_container_id': 'databaseContainerId',
+ 'database_id': 'databaseId',
+ 'primary_db_id': 'primaryDbId',
+ 'primary_db_unique_name': 'primaryDbUniqueName',
+ 'db_unique_name': 'dbUniqueName',
+ 'db_role': 'dbRole',
'metrics': 'metrics'
}
@@ -188,6 +240,11 @@ def __init__(self, **kwargs):
self._workload_type = None
self._database_name = None
self._database_container_id = None
+ self._database_id = None
+ self._primary_db_id = None
+ self._primary_db_unique_name = None
+ self._db_unique_name = None
+ self._db_role = None
self._metrics = None
@property
@@ -444,6 +501,132 @@ def database_container_id(self, database_container_id):
"""
self._database_container_id = database_container_id
+ @property
+ def database_id(self):
+ """
+ Gets the database_id of this DatabaseUsageMetrics.
+ The Database id of the Managed Database. Every database had its own id and that value is captured here.
+
+
+ :return: The database_id of this DatabaseUsageMetrics.
+ :rtype: str
+ """
+ return self._database_id
+
+ @database_id.setter
+ def database_id(self, database_id):
+ """
+ Sets the database_id of this DatabaseUsageMetrics.
+ The Database id of the Managed Database. Every database had its own id and that value is captured here.
+
+
+ :param database_id: The database_id of this DatabaseUsageMetrics.
+ :type: str
+ """
+ self._database_id = database_id
+
+ @property
+ def primary_db_id(self):
+ """
+ Gets the primary_db_id of this DatabaseUsageMetrics.
+ The Primary Database id of the Managed Database.
+
+
+ :return: The primary_db_id of this DatabaseUsageMetrics.
+ :rtype: str
+ """
+ return self._primary_db_id
+
+ @primary_db_id.setter
+ def primary_db_id(self, primary_db_id):
+ """
+ Sets the primary_db_id of this DatabaseUsageMetrics.
+ The Primary Database id of the Managed Database.
+
+
+ :param primary_db_id: The primary_db_id of this DatabaseUsageMetrics.
+ :type: str
+ """
+ self._primary_db_id = primary_db_id
+
+ @property
+ def primary_db_unique_name(self):
+ """
+ Gets the primary_db_unique_name of this DatabaseUsageMetrics.
+ The Primary Database unique name of the Managed Database.
+
+
+ :return: The primary_db_unique_name of this DatabaseUsageMetrics.
+ :rtype: str
+ """
+ return self._primary_db_unique_name
+
+ @primary_db_unique_name.setter
+ def primary_db_unique_name(self, primary_db_unique_name):
+ """
+ Sets the primary_db_unique_name of this DatabaseUsageMetrics.
+ The Primary Database unique name of the Managed Database.
+
+
+ :param primary_db_unique_name: The primary_db_unique_name of this DatabaseUsageMetrics.
+ :type: str
+ """
+ self._primary_db_unique_name = primary_db_unique_name
+
+ @property
+ def db_unique_name(self):
+ """
+ Gets the db_unique_name of this DatabaseUsageMetrics.
+ The Database unique name of the Managed Database.
+
+
+ :return: The db_unique_name of this DatabaseUsageMetrics.
+ :rtype: str
+ """
+ return self._db_unique_name
+
+ @db_unique_name.setter
+ def db_unique_name(self, db_unique_name):
+ """
+ Sets the db_unique_name of this DatabaseUsageMetrics.
+ The Database unique name of the Managed Database.
+
+
+ :param db_unique_name: The db_unique_name of this DatabaseUsageMetrics.
+ :type: str
+ """
+ self._db_unique_name = db_unique_name
+
+ @property
+ def db_role(self):
+ """
+ Gets the db_role of this DatabaseUsageMetrics.
+ The Database role of the Managed Database.
+
+ Allowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The db_role of this DatabaseUsageMetrics.
+ :rtype: str
+ """
+ return self._db_role
+
+ @db_role.setter
+ def db_role(self, db_role):
+ """
+ Sets the db_role of this DatabaseUsageMetrics.
+ The Database role of the Managed Database.
+
+
+ :param db_role: The db_role of this DatabaseUsageMetrics.
+ :type: str
+ """
+ allowed_values = ["SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC"]
+ if not value_allowed_none_or_none_sentinel(db_role, allowed_values):
+ db_role = 'UNKNOWN_ENUM_VALUE'
+ self._db_role = db_role
+
@property
def metrics(self):
"""
diff --git a/src/oci/database_management/models/dataguard_performance_metrics.py b/src/oci/database_management/models/dataguard_performance_metrics.py
new file mode 100644
index 000000000..932664576
--- /dev/null
+++ b/src/oci/database_management/models/dataguard_performance_metrics.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20201101
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class DataguardPerformanceMetrics(object):
+ """
+ A summary of Data Guard performance metrics for Managed Databases.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new DataguardPerformanceMetrics object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param metrics_data:
+ The value to assign to the metrics_data property of this DataguardPerformanceMetrics.
+ :type metrics_data: list[oci.database_management.models.PerformanceMetricsData]
+
+ """
+ self.swagger_types = {
+ 'metrics_data': 'list[PerformanceMetricsData]'
+ }
+
+ self.attribute_map = {
+ 'metrics_data': 'metricsData'
+ }
+
+ self._metrics_data = None
+
+ @property
+ def metrics_data(self):
+ """
+ **[Required]** Gets the metrics_data of this DataguardPerformanceMetrics.
+ A summary of Data Guard performance metrics such as ApplyLag, TransportLag and RedoApplyRate, for Managed Databases.
+
+
+ :return: The metrics_data of this DataguardPerformanceMetrics.
+ :rtype: list[oci.database_management.models.PerformanceMetricsData]
+ """
+ return self._metrics_data
+
+ @metrics_data.setter
+ def metrics_data(self, metrics_data):
+ """
+ Sets the metrics_data of this DataguardPerformanceMetrics.
+ A summary of Data Guard performance metrics such as ApplyLag, TransportLag and RedoApplyRate, for Managed Databases.
+
+
+ :param metrics_data: The metrics_data of this DataguardPerformanceMetrics.
+ :type: list[oci.database_management.models.PerformanceMetricsData]
+ """
+ self._metrics_data = metrics_data
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/database_management/models/peer_database_metrics.py b/src/oci/database_management/models/peer_database_metrics.py
new file mode 100644
index 000000000..3a1b7547d
--- /dev/null
+++ b/src/oci/database_management/models/peer_database_metrics.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20201101
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class PeerDatabaseMetrics(object):
+ """
+ The summary of resource usage metrics for the peer database.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PeerDatabaseMetrics object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param peer_db_metrics:
+ The value to assign to the peer_db_metrics property of this PeerDatabaseMetrics.
+ :type peer_db_metrics: list[oci.database_management.models.DatabaseUsageMetrics]
+
+ """
+ self.swagger_types = {
+ 'peer_db_metrics': 'list[DatabaseUsageMetrics]'
+ }
+
+ self.attribute_map = {
+ 'peer_db_metrics': 'peerDbMetrics'
+ }
+
+ self._peer_db_metrics = None
+
+ @property
+ def peer_db_metrics(self):
+ """
+ **[Required]** Gets the peer_db_metrics of this PeerDatabaseMetrics.
+ A list of resource usage metrics for the peer database.
+
+
+ :return: The peer_db_metrics of this PeerDatabaseMetrics.
+ :rtype: list[oci.database_management.models.DatabaseUsageMetrics]
+ """
+ return self._peer_db_metrics
+
+ @peer_db_metrics.setter
+ def peer_db_metrics(self, peer_db_metrics):
+ """
+ Sets the peer_db_metrics of this PeerDatabaseMetrics.
+ A list of resource usage metrics for the peer database.
+
+
+ :param peer_db_metrics: The peer_db_metrics of this PeerDatabaseMetrics.
+ :type: list[oci.database_management.models.DatabaseUsageMetrics]
+ """
+ self._peer_db_metrics = peer_db_metrics
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/database_management/models/performance_metrics.py b/src/oci/database_management/models/performance_metrics.py
new file mode 100644
index 000000000..749865a77
--- /dev/null
+++ b/src/oci/database_management/models/performance_metrics.py
@@ -0,0 +1,165 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20201101
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class PerformanceMetrics(object):
+ """
+ The Data Guard performance metric details.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PerformanceMetrics object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param name:
+ The value to assign to the name property of this PerformanceMetrics.
+ :type name: str
+
+ :param dimensions:
+ The value to assign to the dimensions property of this PerformanceMetrics.
+ :type dimensions: object
+
+ :param metadata:
+ The value to assign to the metadata property of this PerformanceMetrics.
+ :type metadata: object
+
+ :param datapoints:
+ The value to assign to the datapoints property of this PerformanceMetrics.
+ :type datapoints: list[oci.database_management.models.DataPoints]
+
+ """
+ self.swagger_types = {
+ 'name': 'str',
+ 'dimensions': 'object',
+ 'metadata': 'object',
+ 'datapoints': 'list[DataPoints]'
+ }
+
+ self.attribute_map = {
+ 'name': 'name',
+ 'dimensions': 'dimensions',
+ 'metadata': 'metadata',
+ 'datapoints': 'datapoints'
+ }
+
+ self._name = None
+ self._dimensions = None
+ self._metadata = None
+ self._datapoints = None
+
+ @property
+ def name(self):
+ """
+ Gets the name of this PerformanceMetrics.
+ The name of the metric.
+
+
+ :return: The name of this PerformanceMetrics.
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """
+ Sets the name of this PerformanceMetrics.
+ The name of the metric.
+
+
+ :param name: The name of this PerformanceMetrics.
+ :type: str
+ """
+ self._name = name
+
+ @property
+ def dimensions(self):
+ """
+ Gets the dimensions of this PerformanceMetrics.
+ The dimensions of the Data Guard performance metrics, such as primary database ID, primary database unique name.
+
+
+ :return: The dimensions of this PerformanceMetrics.
+ :rtype: object
+ """
+ return self._dimensions
+
+ @dimensions.setter
+ def dimensions(self, dimensions):
+ """
+ Sets the dimensions of this PerformanceMetrics.
+ The dimensions of the Data Guard performance metrics, such as primary database ID, primary database unique name.
+
+
+ :param dimensions: The dimensions of this PerformanceMetrics.
+ :type: object
+ """
+ self._dimensions = dimensions
+
+ @property
+ def metadata(self):
+ """
+ Gets the metadata of this PerformanceMetrics.
+ The metadata of the metric, such as Unit.
+
+
+ :return: The metadata of this PerformanceMetrics.
+ :rtype: object
+ """
+ return self._metadata
+
+ @metadata.setter
+ def metadata(self, metadata):
+ """
+ Sets the metadata of this PerformanceMetrics.
+ The metadata of the metric, such as Unit.
+
+
+ :param metadata: The metadata of this PerformanceMetrics.
+ :type: object
+ """
+ self._metadata = metadata
+
+ @property
+ def datapoints(self):
+ """
+ Gets the datapoints of this PerformanceMetrics.
+ The aggregated datapoints of the metric.
+
+
+ :return: The datapoints of this PerformanceMetrics.
+ :rtype: list[oci.database_management.models.DataPoints]
+ """
+ return self._datapoints
+
+ @datapoints.setter
+ def datapoints(self, datapoints):
+ """
+ Sets the datapoints of this PerformanceMetrics.
+ The aggregated datapoints of the metric.
+
+
+ :param datapoints: The datapoints of this PerformanceMetrics.
+ :type: list[oci.database_management.models.DataPoints]
+ """
+ self._datapoints = datapoints
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/database_management/models/performance_metrics_data.py b/src/oci/database_management/models/performance_metrics_data.py
new file mode 100644
index 000000000..5b290bc19
--- /dev/null
+++ b/src/oci/database_management/models/performance_metrics_data.py
@@ -0,0 +1,387 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20201101
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class PerformanceMetricsData(object):
+ """
+ The list of Data Guard performance metrics for Managed Databases.
+ """
+
+ #: A constant which can be used with the db_role property of a PerformanceMetricsData.
+ #: This constant has a value of "SNAPSHOT_STANDBY"
+ DB_ROLE_SNAPSHOT_STANDBY = "SNAPSHOT_STANDBY"
+
+ #: A constant which can be used with the db_role property of a PerformanceMetricsData.
+ #: This constant has a value of "LOGICAL_STANDBY"
+ DB_ROLE_LOGICAL_STANDBY = "LOGICAL_STANDBY"
+
+ #: A constant which can be used with the db_role property of a PerformanceMetricsData.
+ #: This constant has a value of "PHYSICAL_STANDBY"
+ DB_ROLE_PHYSICAL_STANDBY = "PHYSICAL_STANDBY"
+
+ #: A constant which can be used with the db_role property of a PerformanceMetricsData.
+ #: This constant has a value of "PRIMARY"
+ DB_ROLE_PRIMARY = "PRIMARY"
+
+ #: A constant which can be used with the db_role property of a PerformanceMetricsData.
+ #: This constant has a value of "FAR_SYNC"
+ DB_ROLE_FAR_SYNC = "FAR_SYNC"
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PerformanceMetricsData object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param compartment_id:
+ The value to assign to the compartment_id property of this PerformanceMetricsData.
+ :type compartment_id: str
+
+ :param resource_id:
+ The value to assign to the resource_id property of this PerformanceMetricsData.
+ :type resource_id: str
+
+ :param primary_db_id:
+ The value to assign to the primary_db_id property of this PerformanceMetricsData.
+ :type primary_db_id: str
+
+ :param primary_db_unique_name:
+ The value to assign to the primary_db_unique_name property of this PerformanceMetricsData.
+ :type primary_db_unique_name: str
+
+ :param database_id:
+ The value to assign to the database_id property of this PerformanceMetricsData.
+ :type database_id: str
+
+ :param db_unique_name:
+ The value to assign to the db_unique_name property of this PerformanceMetricsData.
+ :type db_unique_name: str
+
+ :param deployment_type:
+ The value to assign to the deployment_type property of this PerformanceMetricsData.
+ :type deployment_type: str
+
+ :param resource_name:
+ The value to assign to the resource_name property of this PerformanceMetricsData.
+ :type resource_name: str
+
+ :param db_role:
+ The value to assign to the db_role property of this PerformanceMetricsData.
+ Allowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type db_role: str
+
+ :param metrics:
+ The value to assign to the metrics property of this PerformanceMetricsData.
+ :type metrics: list[oci.database_management.models.PerformanceMetrics]
+
+ """
+ self.swagger_types = {
+ 'compartment_id': 'str',
+ 'resource_id': 'str',
+ 'primary_db_id': 'str',
+ 'primary_db_unique_name': 'str',
+ 'database_id': 'str',
+ 'db_unique_name': 'str',
+ 'deployment_type': 'str',
+ 'resource_name': 'str',
+ 'db_role': 'str',
+ 'metrics': 'list[PerformanceMetrics]'
+ }
+
+ self.attribute_map = {
+ 'compartment_id': 'compartmentId',
+ 'resource_id': 'resourceId',
+ 'primary_db_id': 'primaryDbId',
+ 'primary_db_unique_name': 'primaryDbUniqueName',
+ 'database_id': 'databaseId',
+ 'db_unique_name': 'dbUniqueName',
+ 'deployment_type': 'deploymentType',
+ 'resource_name': 'resourceName',
+ 'db_role': 'dbRole',
+ 'metrics': 'metrics'
+ }
+
+ self._compartment_id = None
+ self._resource_id = None
+ self._primary_db_id = None
+ self._primary_db_unique_name = None
+ self._database_id = None
+ self._db_unique_name = None
+ self._deployment_type = None
+ self._resource_name = None
+ self._db_role = None
+ self._metrics = None
+
+ @property
+ def compartment_id(self):
+ """
+ Gets the compartment_id of this PerformanceMetricsData.
+ The `OCID`__ of the compartment in which the Managed Database resides.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :return: The compartment_id of this PerformanceMetricsData.
+ :rtype: str
+ """
+ return self._compartment_id
+
+ @compartment_id.setter
+ def compartment_id(self, compartment_id):
+ """
+ Sets the compartment_id of this PerformanceMetricsData.
+ The `OCID`__ of the compartment in which the Managed Database resides.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :param compartment_id: The compartment_id of this PerformanceMetricsData.
+ :type: str
+ """
+ self._compartment_id = compartment_id
+
+ @property
+ def resource_id(self):
+ """
+ Gets the resource_id of this PerformanceMetricsData.
+ The `OCID`__ of the Managed Database.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :return: The resource_id of this PerformanceMetricsData.
+ :rtype: str
+ """
+ return self._resource_id
+
+ @resource_id.setter
+ def resource_id(self, resource_id):
+ """
+ Sets the resource_id of this PerformanceMetricsData.
+ The `OCID`__ of the Managed Database.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :param resource_id: The resource_id of this PerformanceMetricsData.
+ :type: str
+ """
+ self._resource_id = resource_id
+
+ @property
+ def primary_db_id(self):
+ """
+ Gets the primary_db_id of this PerformanceMetricsData.
+ The ID of the primary database.
+
+
+ :return: The primary_db_id of this PerformanceMetricsData.
+ :rtype: str
+ """
+ return self._primary_db_id
+
+ @primary_db_id.setter
+ def primary_db_id(self, primary_db_id):
+ """
+ Sets the primary_db_id of this PerformanceMetricsData.
+ The ID of the primary database.
+
+
+ :param primary_db_id: The primary_db_id of this PerformanceMetricsData.
+ :type: str
+ """
+ self._primary_db_id = primary_db_id
+
+ @property
+ def primary_db_unique_name(self):
+ """
+ Gets the primary_db_unique_name of this PerformanceMetricsData.
+ The primary database unique name of the Managed Database.
+
+
+ :return: The primary_db_unique_name of this PerformanceMetricsData.
+ :rtype: str
+ """
+ return self._primary_db_unique_name
+
+ @primary_db_unique_name.setter
+ def primary_db_unique_name(self, primary_db_unique_name):
+ """
+ Sets the primary_db_unique_name of this PerformanceMetricsData.
+ The primary database unique name of the Managed Database.
+
+
+ :param primary_db_unique_name: The primary_db_unique_name of this PerformanceMetricsData.
+ :type: str
+ """
+ self._primary_db_unique_name = primary_db_unique_name
+
+ @property
+ def database_id(self):
+ """
+ Gets the database_id of this PerformanceMetricsData.
+ The database ID of the Managed Database. Every database had its own ID and that value is captured here.
+
+
+ :return: The database_id of this PerformanceMetricsData.
+ :rtype: str
+ """
+ return self._database_id
+
+ @database_id.setter
+ def database_id(self, database_id):
+ """
+ Sets the database_id of this PerformanceMetricsData.
+ The database ID of the Managed Database. Every database had its own ID and that value is captured here.
+
+
+ :param database_id: The database_id of this PerformanceMetricsData.
+ :type: str
+ """
+ self._database_id = database_id
+
+ @property
+ def db_unique_name(self):
+ """
+ Gets the db_unique_name of this PerformanceMetricsData.
+ The database unique name of the Managed Database.
+
+
+ :return: The db_unique_name of this PerformanceMetricsData.
+ :rtype: str
+ """
+ return self._db_unique_name
+
+ @db_unique_name.setter
+ def db_unique_name(self, db_unique_name):
+ """
+ Sets the db_unique_name of this PerformanceMetricsData.
+ The database unique name of the Managed Database.
+
+
+ :param db_unique_name: The db_unique_name of this PerformanceMetricsData.
+ :type: str
+ """
+ self._db_unique_name = db_unique_name
+
+ @property
+ def deployment_type(self):
+ """
+ Gets the deployment_type of this PerformanceMetricsData.
+ The deployment type of the Managed Database.
+
+
+ :return: The deployment_type of this PerformanceMetricsData.
+ :rtype: str
+ """
+ return self._deployment_type
+
+ @deployment_type.setter
+ def deployment_type(self, deployment_type):
+ """
+ Sets the deployment_type of this PerformanceMetricsData.
+ The deployment type of the Managed Database.
+
+
+ :param deployment_type: The deployment_type of this PerformanceMetricsData.
+ :type: str
+ """
+ self._deployment_type = deployment_type
+
+ @property
+ def resource_name(self):
+ """
+ Gets the resource_name of this PerformanceMetricsData.
+ The resource name of the Managed Database.
+
+
+ :return: The resource_name of this PerformanceMetricsData.
+ :rtype: str
+ """
+ return self._resource_name
+
+ @resource_name.setter
+ def resource_name(self, resource_name):
+ """
+ Sets the resource_name of this PerformanceMetricsData.
+ The resource name of the Managed Database.
+
+
+ :param resource_name: The resource_name of this PerformanceMetricsData.
+ :type: str
+ """
+ self._resource_name = resource_name
+
+ @property
+ def db_role(self):
+ """
+ Gets the db_role of this PerformanceMetricsData.
+ The database role of the Managed Database.
+
+ Allowed values for this property are: "SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The db_role of this PerformanceMetricsData.
+ :rtype: str
+ """
+ return self._db_role
+
+ @db_role.setter
+ def db_role(self, db_role):
+ """
+ Sets the db_role of this PerformanceMetricsData.
+ The database role of the Managed Database.
+
+
+ :param db_role: The db_role of this PerformanceMetricsData.
+ :type: str
+ """
+ allowed_values = ["SNAPSHOT_STANDBY", "LOGICAL_STANDBY", "PHYSICAL_STANDBY", "PRIMARY", "FAR_SYNC"]
+ if not value_allowed_none_or_none_sentinel(db_role, allowed_values):
+ db_role = 'UNKNOWN_ENUM_VALUE'
+ self._db_role = db_role
+
+ @property
+ def metrics(self):
+ """
+ Gets the metrics of this PerformanceMetricsData.
+ The list of Data Guard performance metrics such as ApplyLag, TransportLag and RedoApplyRate for the Managed Databases.
+
+
+ :return: The metrics of this PerformanceMetricsData.
+ :rtype: list[oci.database_management.models.PerformanceMetrics]
+ """
+ return self._metrics
+
+ @metrics.setter
+ def metrics(self, metrics):
+ """
+ Sets the metrics of this PerformanceMetricsData.
+ The list of Data Guard performance metrics such as ApplyLag, TransportLag and RedoApplyRate for the Managed Databases.
+
+
+ :param metrics: The metrics of this PerformanceMetricsData.
+ :type: list[oci.database_management.models.PerformanceMetrics]
+ """
+ self._metrics = metrics
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/database_management/models/preferred_credential_summary.py b/src/oci/database_management/models/preferred_credential_summary.py
index 29ebbdee2..204d0ddc5 100644
--- a/src/oci/database_management/models/preferred_credential_summary.py
+++ b/src/oci/database_management/models/preferred_credential_summary.py
@@ -31,6 +31,10 @@ class PreferredCredentialSummary(object):
#: This constant has a value of "SYSDBA"
ROLE_SYSDBA = "SYSDBA"
+ #: A constant which can be used with the role property of a PreferredCredentialSummary.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new PreferredCredentialSummary object with values from keyword arguments.
@@ -56,7 +60,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this PreferredCredentialSummary.
- Allowed values for this property are: "NORMAL", "SYSDBA", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type role: str
@@ -205,7 +209,7 @@ def role(self):
Gets the role of this PreferredCredentialSummary.
The role of the database user.
- Allowed values for this property are: "NORMAL", "SYSDBA", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -224,7 +228,7 @@ def role(self, role):
:param role: The role of this PreferredCredentialSummary.
:type: str
"""
- allowed_values = ["NORMAL", "SYSDBA"]
+ allowed_values = ["NORMAL", "SYSDBA", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
role = 'UNKNOWN_ENUM_VALUE'
self._role = role
diff --git a/src/oci/database_management/models/test_basic_preferred_credential_details.py b/src/oci/database_management/models/test_basic_preferred_credential_details.py
index 7cbbde3fe..f092a8a17 100644
--- a/src/oci/database_management/models/test_basic_preferred_credential_details.py
+++ b/src/oci/database_management/models/test_basic_preferred_credential_details.py
@@ -23,6 +23,10 @@ class TestBasicPreferredCredentialDetails(TestPreferredCredentialDetails):
#: This constant has a value of "SYSDBA"
ROLE_SYSDBA = "SYSDBA"
+ #: A constant which can be used with the role property of a TestBasicPreferredCredentialDetails.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new TestBasicPreferredCredentialDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.database_management.models.TestBasicPreferredCredentialDetails.type` attribute
@@ -40,7 +44,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this TestBasicPreferredCredentialDetails.
- Allowed values for this property are: "NORMAL", "SYSDBA"
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG"
:type role: str
:param password_secret_id:
@@ -98,7 +102,7 @@ def role(self):
Gets the role of this TestBasicPreferredCredentialDetails.
The role of the database user.
- Allowed values for this property are: "NORMAL", "SYSDBA"
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG"
:return: The role of this TestBasicPreferredCredentialDetails.
@@ -116,7 +120,7 @@ def role(self, role):
:param role: The role of this TestBasicPreferredCredentialDetails.
:type: str
"""
- allowed_values = ["NORMAL", "SYSDBA"]
+ allowed_values = ["NORMAL", "SYSDBA", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
raise ValueError(
f"Invalid value for `role`, must be None or one of {allowed_values}"
diff --git a/src/oci/database_management/models/update_basic_preferred_credential_details.py b/src/oci/database_management/models/update_basic_preferred_credential_details.py
index 1e71759fe..2721b4397 100644
--- a/src/oci/database_management/models/update_basic_preferred_credential_details.py
+++ b/src/oci/database_management/models/update_basic_preferred_credential_details.py
@@ -23,6 +23,10 @@ class UpdateBasicPreferredCredentialDetails(UpdatePreferredCredentialDetails):
#: This constant has a value of "SYSDBA"
ROLE_SYSDBA = "SYSDBA"
+ #: A constant which can be used with the role property of a UpdateBasicPreferredCredentialDetails.
+ #: This constant has a value of "SYSDG"
+ ROLE_SYSDG = "SYSDG"
+
def __init__(self, **kwargs):
"""
Initializes a new UpdateBasicPreferredCredentialDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.database_management.models.UpdateBasicPreferredCredentialDetails.type` attribute
@@ -40,7 +44,7 @@ def __init__(self, **kwargs):
:param role:
The value to assign to the role property of this UpdateBasicPreferredCredentialDetails.
- Allowed values for this property are: "NORMAL", "SYSDBA"
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG"
:type role: str
:param password_secret_id:
@@ -98,7 +102,7 @@ def role(self):
Gets the role of this UpdateBasicPreferredCredentialDetails.
The role of the database user.
- Allowed values for this property are: "NORMAL", "SYSDBA"
+ Allowed values for this property are: "NORMAL", "SYSDBA", "SYSDG"
:return: The role of this UpdateBasicPreferredCredentialDetails.
@@ -116,7 +120,7 @@ def role(self, role):
:param role: The role of this UpdateBasicPreferredCredentialDetails.
:type: str
"""
- allowed_values = ["NORMAL", "SYSDBA"]
+ allowed_values = ["NORMAL", "SYSDBA", "SYSDG"]
if not value_allowed_none_or_none_sentinel(role, allowed_values):
raise ValueError(
f"Invalid value for `role`, must be None or one of {allowed_values}"
diff --git a/src/oci/demand_signal/__init__.py b/src/oci/demand_signal/__init__.py
new file mode 100644
index 000000000..4f17b2456
--- /dev/null
+++ b/src/oci/demand_signal/__init__.py
@@ -0,0 +1,14 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+from __future__ import absolute_import
+
+
+from .occ_demand_signal_client import OccDemandSignalClient
+from .occ_demand_signal_client_composite_operations import OccDemandSignalClientCompositeOperations
+from . import models
+
+__all__ = ["OccDemandSignalClient", "OccDemandSignalClientCompositeOperations", "models"]
diff --git a/src/oci/demand_signal/models/__init__.py b/src/oci/demand_signal/models/__init__.py
new file mode 100644
index 000000000..40ac3dc11
--- /dev/null
+++ b/src/oci/demand_signal/models/__init__.py
@@ -0,0 +1,48 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+from __future__ import absolute_import
+
+from .change_occ_demand_signal_compartment_details import ChangeOccDemandSignalCompartmentDetails
+from .create_occ_demand_signal_details import CreateOccDemandSignalDetails
+from .occ_demand_signal import OccDemandSignal
+from .occ_demand_signal_collection import OccDemandSignalCollection
+from .occ_demand_signal_data import OccDemandSignalData
+from .occ_demand_signal_summary import OccDemandSignalSummary
+from .occ_demand_signal_value import OccDemandSignalValue
+from .patch_insert_instruction import PatchInsertInstruction
+from .patch_insert_multiple_instruction import PatchInsertMultipleInstruction
+from .patch_instruction import PatchInstruction
+from .patch_merge_instruction import PatchMergeInstruction
+from .patch_move_instruction import PatchMoveInstruction
+from .patch_occ_demand_signal_details import PatchOccDemandSignalDetails
+from .patch_prohibit_instruction import PatchProhibitInstruction
+from .patch_remove_instruction import PatchRemoveInstruction
+from .patch_replace_instruction import PatchReplaceInstruction
+from .patch_require_instruction import PatchRequireInstruction
+from .update_occ_demand_signal_details import UpdateOccDemandSignalDetails
+
+# Maps type names to classes for demand_signal services.
+demand_signal_type_mapping = {
+ "ChangeOccDemandSignalCompartmentDetails": ChangeOccDemandSignalCompartmentDetails,
+ "CreateOccDemandSignalDetails": CreateOccDemandSignalDetails,
+ "OccDemandSignal": OccDemandSignal,
+ "OccDemandSignalCollection": OccDemandSignalCollection,
+ "OccDemandSignalData": OccDemandSignalData,
+ "OccDemandSignalSummary": OccDemandSignalSummary,
+ "OccDemandSignalValue": OccDemandSignalValue,
+ "PatchInsertInstruction": PatchInsertInstruction,
+ "PatchInsertMultipleInstruction": PatchInsertMultipleInstruction,
+ "PatchInstruction": PatchInstruction,
+ "PatchMergeInstruction": PatchMergeInstruction,
+ "PatchMoveInstruction": PatchMoveInstruction,
+ "PatchOccDemandSignalDetails": PatchOccDemandSignalDetails,
+ "PatchProhibitInstruction": PatchProhibitInstruction,
+ "PatchRemoveInstruction": PatchRemoveInstruction,
+ "PatchReplaceInstruction": PatchReplaceInstruction,
+ "PatchRequireInstruction": PatchRequireInstruction,
+ "UpdateOccDemandSignalDetails": UpdateOccDemandSignalDetails
+}
diff --git a/src/oci/demand_signal/models/change_occ_demand_signal_compartment_details.py b/src/oci/demand_signal/models/change_occ_demand_signal_compartment_details.py
new file mode 100644
index 000000000..6ebff4d4e
--- /dev/null
+++ b/src/oci/demand_signal/models/change_occ_demand_signal_compartment_details.py
@@ -0,0 +1,76 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class ChangeOccDemandSignalCompartmentDetails(object):
+ """
+ The configuration details for the move operation.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new ChangeOccDemandSignalCompartmentDetails object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param compartment_id:
+ The value to assign to the compartment_id property of this ChangeOccDemandSignalCompartmentDetails.
+ :type compartment_id: str
+
+ """
+ self.swagger_types = {
+ 'compartment_id': 'str'
+ }
+
+ self.attribute_map = {
+ 'compartment_id': 'compartmentId'
+ }
+
+ self._compartment_id = None
+
+ @property
+ def compartment_id(self):
+ """
+ **[Required]** Gets the compartment_id of this ChangeOccDemandSignalCompartmentDetails.
+ The `OCID`__ of the compartment to move the OccDemandSignal to.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+
+ :return: The compartment_id of this ChangeOccDemandSignalCompartmentDetails.
+ :rtype: str
+ """
+ return self._compartment_id
+
+ @compartment_id.setter
+ def compartment_id(self, compartment_id):
+ """
+ Sets the compartment_id of this ChangeOccDemandSignalCompartmentDetails.
+ The `OCID`__ of the compartment to move the OccDemandSignal to.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+
+ :param compartment_id: The compartment_id of this ChangeOccDemandSignalCompartmentDetails.
+ :type: str
+ """
+ self._compartment_id = compartment_id
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/create_occ_demand_signal_details.py b/src/oci/demand_signal/models/create_occ_demand_signal_details.py
new file mode 100644
index 000000000..8111f1c02
--- /dev/null
+++ b/src/oci/demand_signal/models/create_occ_demand_signal_details.py
@@ -0,0 +1,251 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class CreateOccDemandSignalDetails(object):
+ """
+ The data to create a OccDemandSignal.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new CreateOccDemandSignalDetails object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param display_name:
+ The value to assign to the display_name property of this CreateOccDemandSignalDetails.
+ :type display_name: str
+
+ :param occ_demand_signals:
+ The value to assign to the occ_demand_signals property of this CreateOccDemandSignalDetails.
+ :type occ_demand_signals: list[oci.demand_signal.models.OccDemandSignalData]
+
+ :param is_active:
+ The value to assign to the is_active property of this CreateOccDemandSignalDetails.
+ :type is_active: bool
+
+ :param compartment_id:
+ The value to assign to the compartment_id property of this CreateOccDemandSignalDetails.
+ :type compartment_id: str
+
+ :param freeform_tags:
+ The value to assign to the freeform_tags property of this CreateOccDemandSignalDetails.
+ :type freeform_tags: dict(str, str)
+
+ :param defined_tags:
+ The value to assign to the defined_tags property of this CreateOccDemandSignalDetails.
+ :type defined_tags: dict(str, dict(str, object))
+
+ """
+ self.swagger_types = {
+ 'display_name': 'str',
+ 'occ_demand_signals': 'list[OccDemandSignalData]',
+ 'is_active': 'bool',
+ 'compartment_id': 'str',
+ 'freeform_tags': 'dict(str, str)',
+ 'defined_tags': 'dict(str, dict(str, object))'
+ }
+
+ self.attribute_map = {
+ 'display_name': 'displayName',
+ 'occ_demand_signals': 'occDemandSignals',
+ 'is_active': 'isActive',
+ 'compartment_id': 'compartmentId',
+ 'freeform_tags': 'freeformTags',
+ 'defined_tags': 'definedTags'
+ }
+
+ self._display_name = None
+ self._occ_demand_signals = None
+ self._is_active = None
+ self._compartment_id = None
+ self._freeform_tags = None
+ self._defined_tags = None
+
+ @property
+ def display_name(self):
+ """
+ Gets the display_name of this CreateOccDemandSignalDetails.
+ A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
+
+
+ :return: The display_name of this CreateOccDemandSignalDetails.
+ :rtype: str
+ """
+ return self._display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """
+ Sets the display_name of this CreateOccDemandSignalDetails.
+ A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
+
+
+ :param display_name: The display_name of this CreateOccDemandSignalDetails.
+ :type: str
+ """
+ self._display_name = display_name
+
+ @property
+ def occ_demand_signals(self):
+ """
+ **[Required]** Gets the occ_demand_signals of this CreateOccDemandSignalDetails.
+ The OccDemandSignal data.
+
+
+ :return: The occ_demand_signals of this CreateOccDemandSignalDetails.
+ :rtype: list[oci.demand_signal.models.OccDemandSignalData]
+ """
+ return self._occ_demand_signals
+
+ @occ_demand_signals.setter
+ def occ_demand_signals(self, occ_demand_signals):
+ """
+ Sets the occ_demand_signals of this CreateOccDemandSignalDetails.
+ The OccDemandSignal data.
+
+
+ :param occ_demand_signals: The occ_demand_signals of this CreateOccDemandSignalDetails.
+ :type: list[oci.demand_signal.models.OccDemandSignalData]
+ """
+ self._occ_demand_signals = occ_demand_signals
+
+ @property
+ def is_active(self):
+ """
+ **[Required]** Gets the is_active of this CreateOccDemandSignalDetails.
+ Indicator of whether to share the data with Oracle.
+
+
+ :return: The is_active of this CreateOccDemandSignalDetails.
+ :rtype: bool
+ """
+ return self._is_active
+
+ @is_active.setter
+ def is_active(self, is_active):
+ """
+ Sets the is_active of this CreateOccDemandSignalDetails.
+ Indicator of whether to share the data with Oracle.
+
+
+ :param is_active: The is_active of this CreateOccDemandSignalDetails.
+ :type: bool
+ """
+ self._is_active = is_active
+
+ @property
+ def compartment_id(self):
+ """
+ **[Required]** Gets the compartment_id of this CreateOccDemandSignalDetails.
+ The `OCID`__ of the compartment to create the OccDemandSignal in.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+
+ :return: The compartment_id of this CreateOccDemandSignalDetails.
+ :rtype: str
+ """
+ return self._compartment_id
+
+ @compartment_id.setter
+ def compartment_id(self, compartment_id):
+ """
+ Sets the compartment_id of this CreateOccDemandSignalDetails.
+ The `OCID`__ of the compartment to create the OccDemandSignal in.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+
+ :param compartment_id: The compartment_id of this CreateOccDemandSignalDetails.
+ :type: str
+ """
+ self._compartment_id = compartment_id
+
+ @property
+ def freeform_tags(self):
+ """
+ Gets the freeform_tags of this CreateOccDemandSignalDetails.
+ 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`__.
+
+ Example: `{\"Department\": \"Finance\"}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :return: The freeform_tags of this CreateOccDemandSignalDetails.
+ :rtype: dict(str, str)
+ """
+ return self._freeform_tags
+
+ @freeform_tags.setter
+ def freeform_tags(self, freeform_tags):
+ """
+ Sets the freeform_tags of this CreateOccDemandSignalDetails.
+ 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`__.
+
+ Example: `{\"Department\": \"Finance\"}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :param freeform_tags: The freeform_tags of this CreateOccDemandSignalDetails.
+ :type: dict(str, str)
+ """
+ self._freeform_tags = freeform_tags
+
+ @property
+ def defined_tags(self):
+ """
+ Gets the defined_tags of this CreateOccDemandSignalDetails.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ For more information, see `Resource Tags`__.
+
+ Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :return: The defined_tags of this CreateOccDemandSignalDetails.
+ :rtype: dict(str, dict(str, object))
+ """
+ return self._defined_tags
+
+ @defined_tags.setter
+ def defined_tags(self, defined_tags):
+ """
+ Sets the defined_tags of this CreateOccDemandSignalDetails.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ For more information, see `Resource Tags`__.
+
+ Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :param defined_tags: The defined_tags of this CreateOccDemandSignalDetails.
+ :type: dict(str, dict(str, object))
+ """
+ self._defined_tags = defined_tags
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/occ_demand_signal.py b/src/oci/demand_signal/models/occ_demand_signal.py
new file mode 100644
index 000000000..b0ace3573
--- /dev/null
+++ b/src/oci/demand_signal/models/occ_demand_signal.py
@@ -0,0 +1,501 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class OccDemandSignal(object):
+ """
+ An OccDemandSignal is a forecast created for different Resource Types.
+
+ To use any of the API operations, you must be authorized in an IAM policy. If you're not authorized, talk to
+ an administrator. If you're an administrator who needs to write policies to give users access, see
+ `Getting Started with Policies`__.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/Identity/policiesgs/get-started-with-policies.htm
+ """
+
+ #: A constant which can be used with the lifecycle_state property of a OccDemandSignal.
+ #: This constant has a value of "CREATING"
+ LIFECYCLE_STATE_CREATING = "CREATING"
+
+ #: A constant which can be used with the lifecycle_state property of a OccDemandSignal.
+ #: This constant has a value of "UPDATING"
+ LIFECYCLE_STATE_UPDATING = "UPDATING"
+
+ #: A constant which can be used with the lifecycle_state property of a OccDemandSignal.
+ #: This constant has a value of "ACTIVE"
+ LIFECYCLE_STATE_ACTIVE = "ACTIVE"
+
+ #: A constant which can be used with the lifecycle_state property of a OccDemandSignal.
+ #: This constant has a value of "DELETING"
+ LIFECYCLE_STATE_DELETING = "DELETING"
+
+ #: A constant which can be used with the lifecycle_state property of a OccDemandSignal.
+ #: This constant has a value of "DELETED"
+ LIFECYCLE_STATE_DELETED = "DELETED"
+
+ #: A constant which can be used with the lifecycle_state property of a OccDemandSignal.
+ #: This constant has a value of "FAILED"
+ LIFECYCLE_STATE_FAILED = "FAILED"
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new OccDemandSignal object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param id:
+ The value to assign to the id property of this OccDemandSignal.
+ :type id: str
+
+ :param compartment_id:
+ The value to assign to the compartment_id property of this OccDemandSignal.
+ :type compartment_id: str
+
+ :param display_name:
+ The value to assign to the display_name property of this OccDemandSignal.
+ :type display_name: str
+
+ :param occ_demand_signals:
+ The value to assign to the occ_demand_signals property of this OccDemandSignal.
+ :type occ_demand_signals: list[oci.demand_signal.models.OccDemandSignalData]
+
+ :param is_active:
+ The value to assign to the is_active property of this OccDemandSignal.
+ :type is_active: bool
+
+ :param lifecycle_state:
+ The value to assign to the lifecycle_state property of this OccDemandSignal.
+ Allowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type lifecycle_state: str
+
+ :param time_created:
+ The value to assign to the time_created property of this OccDemandSignal.
+ :type time_created: datetime
+
+ :param time_updated:
+ The value to assign to the time_updated property of this OccDemandSignal.
+ :type time_updated: datetime
+
+ :param lifecycle_details:
+ The value to assign to the lifecycle_details property of this OccDemandSignal.
+ :type lifecycle_details: str
+
+ :param freeform_tags:
+ The value to assign to the freeform_tags property of this OccDemandSignal.
+ :type freeform_tags: dict(str, str)
+
+ :param defined_tags:
+ The value to assign to the defined_tags property of this OccDemandSignal.
+ :type defined_tags: dict(str, dict(str, object))
+
+ :param system_tags:
+ The value to assign to the system_tags property of this OccDemandSignal.
+ :type system_tags: dict(str, dict(str, object))
+
+ """
+ self.swagger_types = {
+ 'id': 'str',
+ 'compartment_id': 'str',
+ 'display_name': 'str',
+ 'occ_demand_signals': 'list[OccDemandSignalData]',
+ 'is_active': 'bool',
+ 'lifecycle_state': 'str',
+ 'time_created': 'datetime',
+ 'time_updated': 'datetime',
+ 'lifecycle_details': 'str',
+ 'freeform_tags': 'dict(str, str)',
+ 'defined_tags': 'dict(str, dict(str, object))',
+ 'system_tags': 'dict(str, dict(str, object))'
+ }
+
+ self.attribute_map = {
+ 'id': 'id',
+ 'compartment_id': 'compartmentId',
+ 'display_name': 'displayName',
+ 'occ_demand_signals': 'occDemandSignals',
+ 'is_active': 'isActive',
+ 'lifecycle_state': 'lifecycleState',
+ 'time_created': 'timeCreated',
+ 'time_updated': 'timeUpdated',
+ 'lifecycle_details': 'lifecycleDetails',
+ 'freeform_tags': 'freeformTags',
+ 'defined_tags': 'definedTags',
+ 'system_tags': 'systemTags'
+ }
+
+ self._id = None
+ self._compartment_id = None
+ self._display_name = None
+ self._occ_demand_signals = None
+ self._is_active = None
+ self._lifecycle_state = None
+ self._time_created = None
+ self._time_updated = None
+ self._lifecycle_details = None
+ self._freeform_tags = None
+ self._defined_tags = None
+ self._system_tags = None
+
+ @property
+ def id(self):
+ """
+ **[Required]** Gets the id of this OccDemandSignal.
+ The `OCID`__ of the OccDemandSignal.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+
+ :return: The id of this OccDemandSignal.
+ :rtype: str
+ """
+ return self._id
+
+ @id.setter
+ def id(self, id):
+ """
+ Sets the id of this OccDemandSignal.
+ The `OCID`__ of the OccDemandSignal.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+
+ :param id: The id of this OccDemandSignal.
+ :type: str
+ """
+ self._id = id
+
+ @property
+ def compartment_id(self):
+ """
+ **[Required]** Gets the compartment_id of this OccDemandSignal.
+ The `OCID`__ of the compartment.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+
+ :return: The compartment_id of this OccDemandSignal.
+ :rtype: str
+ """
+ return self._compartment_id
+
+ @compartment_id.setter
+ def compartment_id(self, compartment_id):
+ """
+ Sets the compartment_id of this OccDemandSignal.
+ The `OCID`__ of the compartment.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+
+ :param compartment_id: The compartment_id of this OccDemandSignal.
+ :type: str
+ """
+ self._compartment_id = compartment_id
+
+ @property
+ def display_name(self):
+ """
+ **[Required]** Gets the display_name of this OccDemandSignal.
+ A user-friendly name. Does not have to be unique, and it's changeable.
+
+
+ :return: The display_name of this OccDemandSignal.
+ :rtype: str
+ """
+ return self._display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """
+ Sets the display_name of this OccDemandSignal.
+ A user-friendly name. Does not have to be unique, and it's changeable.
+
+
+ :param display_name: The display_name of this OccDemandSignal.
+ :type: str
+ """
+ self._display_name = display_name
+
+ @property
+ def occ_demand_signals(self):
+ """
+ **[Required]** Gets the occ_demand_signals of this OccDemandSignal.
+ The OccDemandSignal data.
+
+
+ :return: The occ_demand_signals of this OccDemandSignal.
+ :rtype: list[oci.demand_signal.models.OccDemandSignalData]
+ """
+ return self._occ_demand_signals
+
+ @occ_demand_signals.setter
+ def occ_demand_signals(self, occ_demand_signals):
+ """
+ Sets the occ_demand_signals of this OccDemandSignal.
+ The OccDemandSignal data.
+
+
+ :param occ_demand_signals: The occ_demand_signals of this OccDemandSignal.
+ :type: list[oci.demand_signal.models.OccDemandSignalData]
+ """
+ self._occ_demand_signals = occ_demand_signals
+
+ @property
+ def is_active(self):
+ """
+ **[Required]** Gets the is_active of this OccDemandSignal.
+ Indicator of whether to share the data with Oracle.
+
+
+ :return: The is_active of this OccDemandSignal.
+ :rtype: bool
+ """
+ return self._is_active
+
+ @is_active.setter
+ def is_active(self, is_active):
+ """
+ Sets the is_active of this OccDemandSignal.
+ Indicator of whether to share the data with Oracle.
+
+
+ :param is_active: The is_active of this OccDemandSignal.
+ :type: bool
+ """
+ self._is_active = is_active
+
+ @property
+ def lifecycle_state(self):
+ """
+ **[Required]** Gets the lifecycle_state of this OccDemandSignal.
+ The current state of the OccDemandSignal.
+
+ Allowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The lifecycle_state of this OccDemandSignal.
+ :rtype: str
+ """
+ return self._lifecycle_state
+
+ @lifecycle_state.setter
+ def lifecycle_state(self, lifecycle_state):
+ """
+ Sets the lifecycle_state of this OccDemandSignal.
+ The current state of the OccDemandSignal.
+
+
+ :param lifecycle_state: The lifecycle_state of this OccDemandSignal.
+ :type: str
+ """
+ allowed_values = ["CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"]
+ if not value_allowed_none_or_none_sentinel(lifecycle_state, allowed_values):
+ lifecycle_state = 'UNKNOWN_ENUM_VALUE'
+ self._lifecycle_state = lifecycle_state
+
+ @property
+ def time_created(self):
+ """
+ **[Required]** Gets the time_created of this OccDemandSignal.
+ The date and time the OccDemandSignal was created, in the format defined by `RFC 3339`__.
+
+ Example: `2016-08-25T21:10:29.600Z`
+
+ __ https://tools.ietf.org/html/rfc3339
+
+
+ :return: The time_created of this OccDemandSignal.
+ :rtype: datetime
+ """
+ return self._time_created
+
+ @time_created.setter
+ def time_created(self, time_created):
+ """
+ Sets the time_created of this OccDemandSignal.
+ The date and time the OccDemandSignal was created, in the format defined by `RFC 3339`__.
+
+ Example: `2016-08-25T21:10:29.600Z`
+
+ __ https://tools.ietf.org/html/rfc3339
+
+
+ :param time_created: The time_created of this OccDemandSignal.
+ :type: datetime
+ """
+ self._time_created = time_created
+
+ @property
+ def time_updated(self):
+ """
+ Gets the time_updated of this OccDemandSignal.
+ The date and time the OccDemandSignal was updated, in the format defined by `RFC 3339`__.
+
+ Example: `2016-08-25T21:10:29.600Z`
+
+ __ https://tools.ietf.org/html/rfc3339
+
+
+ :return: The time_updated of this OccDemandSignal.
+ :rtype: datetime
+ """
+ return self._time_updated
+
+ @time_updated.setter
+ def time_updated(self, time_updated):
+ """
+ Sets the time_updated of this OccDemandSignal.
+ The date and time the OccDemandSignal was updated, in the format defined by `RFC 3339`__.
+
+ Example: `2016-08-25T21:10:29.600Z`
+
+ __ https://tools.ietf.org/html/rfc3339
+
+
+ :param time_updated: The time_updated of this OccDemandSignal.
+ :type: datetime
+ """
+ self._time_updated = time_updated
+
+ @property
+ def lifecycle_details(self):
+ """
+ Gets the lifecycle_details of this OccDemandSignal.
+ A message that describes the current state of the OccDemandSignal in more detail. For example,
+ can be used to provide actionable information for a resource in the Failed state.
+
+
+ :return: The lifecycle_details of this OccDemandSignal.
+ :rtype: str
+ """
+ return self._lifecycle_details
+
+ @lifecycle_details.setter
+ def lifecycle_details(self, lifecycle_details):
+ """
+ Sets the lifecycle_details of this OccDemandSignal.
+ A message that describes the current state of the OccDemandSignal in more detail. For example,
+ can be used to provide actionable information for a resource in the Failed state.
+
+
+ :param lifecycle_details: The lifecycle_details of this OccDemandSignal.
+ :type: str
+ """
+ self._lifecycle_details = lifecycle_details
+
+ @property
+ def freeform_tags(self):
+ """
+ **[Required]** Gets the freeform_tags of this OccDemandSignal.
+ 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`__.
+
+ Example: `{\"Department\": \"Finance\"}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :return: The freeform_tags of this OccDemandSignal.
+ :rtype: dict(str, str)
+ """
+ return self._freeform_tags
+
+ @freeform_tags.setter
+ def freeform_tags(self, freeform_tags):
+ """
+ Sets the freeform_tags of this OccDemandSignal.
+ 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`__.
+
+ Example: `{\"Department\": \"Finance\"}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :param freeform_tags: The freeform_tags of this OccDemandSignal.
+ :type: dict(str, str)
+ """
+ self._freeform_tags = freeform_tags
+
+ @property
+ def defined_tags(self):
+ """
+ **[Required]** Gets the defined_tags of this OccDemandSignal.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ For more information, see `Resource Tags`__.
+
+ Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :return: The defined_tags of this OccDemandSignal.
+ :rtype: dict(str, dict(str, object))
+ """
+ return self._defined_tags
+
+ @defined_tags.setter
+ def defined_tags(self, defined_tags):
+ """
+ Sets the defined_tags of this OccDemandSignal.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ For more information, see `Resource Tags`__.
+
+ Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :param defined_tags: The defined_tags of this OccDemandSignal.
+ :type: dict(str, dict(str, object))
+ """
+ self._defined_tags = defined_tags
+
+ @property
+ def system_tags(self):
+ """
+ Gets the system_tags of this OccDemandSignal.
+ System tags for this resource. Each key is predefined and scoped to a namespace.
+
+ Example: `{\"orcl-cloud\": {\"free-tier-retained\": \"true\"}}`
+
+
+ :return: The system_tags of this OccDemandSignal.
+ :rtype: dict(str, dict(str, object))
+ """
+ return self._system_tags
+
+ @system_tags.setter
+ def system_tags(self, system_tags):
+ """
+ Sets the system_tags of this OccDemandSignal.
+ System tags for this resource. Each key is predefined and scoped to a namespace.
+
+ Example: `{\"orcl-cloud\": {\"free-tier-retained\": \"true\"}}`
+
+
+ :param system_tags: The system_tags of this OccDemandSignal.
+ :type: dict(str, dict(str, object))
+ """
+ self._system_tags = system_tags
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/occ_demand_signal_collection.py b/src/oci/demand_signal/models/occ_demand_signal_collection.py
new file mode 100644
index 000000000..e081e9afb
--- /dev/null
+++ b/src/oci/demand_signal/models/occ_demand_signal_collection.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class OccDemandSignalCollection(object):
+ """
+ Results of a occDemandSignal search. Contains both OccDemandSignalSummary items and other information, such as metadata.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new OccDemandSignalCollection object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param items:
+ The value to assign to the items property of this OccDemandSignalCollection.
+ :type items: list[oci.demand_signal.models.OccDemandSignalSummary]
+
+ """
+ self.swagger_types = {
+ 'items': 'list[OccDemandSignalSummary]'
+ }
+
+ self.attribute_map = {
+ 'items': 'items'
+ }
+
+ self._items = None
+
+ @property
+ def items(self):
+ """
+ **[Required]** Gets the items of this OccDemandSignalCollection.
+ List of occDemandSignals.
+
+
+ :return: The items of this OccDemandSignalCollection.
+ :rtype: list[oci.demand_signal.models.OccDemandSignalSummary]
+ """
+ return self._items
+
+ @items.setter
+ def items(self, items):
+ """
+ Sets the items of this OccDemandSignalCollection.
+ List of occDemandSignals.
+
+
+ :param items: The items of this OccDemandSignalCollection.
+ :type: list[oci.demand_signal.models.OccDemandSignalSummary]
+ """
+ self._items = items
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/occ_demand_signal_data.py b/src/oci/demand_signal/models/occ_demand_signal_data.py
new file mode 100644
index 000000000..4e7e3b6aa
--- /dev/null
+++ b/src/oci/demand_signal/models/occ_demand_signal_data.py
@@ -0,0 +1,134 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class OccDemandSignalData(object):
+ """
+ The Data Object For Demand Signal.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new OccDemandSignalData object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param resource_type:
+ The value to assign to the resource_type property of this OccDemandSignalData.
+ :type resource_type: str
+
+ :param units:
+ The value to assign to the units property of this OccDemandSignalData.
+ :type units: str
+
+ :param values:
+ The value to assign to the values property of this OccDemandSignalData.
+ :type values: list[oci.demand_signal.models.OccDemandSignalValue]
+
+ """
+ self.swagger_types = {
+ 'resource_type': 'str',
+ 'units': 'str',
+ 'values': 'list[OccDemandSignalValue]'
+ }
+
+ self.attribute_map = {
+ 'resource_type': 'resourceType',
+ 'units': 'units',
+ 'values': 'values'
+ }
+
+ self._resource_type = None
+ self._units = None
+ self._values = None
+
+ @property
+ def resource_type(self):
+ """
+ **[Required]** Gets the resource_type of this OccDemandSignalData.
+ The name of the resource for the data.
+
+
+ :return: The resource_type of this OccDemandSignalData.
+ :rtype: str
+ """
+ return self._resource_type
+
+ @resource_type.setter
+ def resource_type(self, resource_type):
+ """
+ Sets the resource_type of this OccDemandSignalData.
+ The name of the resource for the data.
+
+
+ :param resource_type: The resource_type of this OccDemandSignalData.
+ :type: str
+ """
+ self._resource_type = resource_type
+
+ @property
+ def units(self):
+ """
+ **[Required]** Gets the units of this OccDemandSignalData.
+ The units of the data.
+
+
+ :return: The units of this OccDemandSignalData.
+ :rtype: str
+ """
+ return self._units
+
+ @units.setter
+ def units(self, units):
+ """
+ Sets the units of this OccDemandSignalData.
+ The units of the data.
+
+
+ :param units: The units of this OccDemandSignalData.
+ :type: str
+ """
+ self._units = units
+
+ @property
+ def values(self):
+ """
+ **[Required]** Gets the values of this OccDemandSignalData.
+ The values of forecast.
+
+
+ :return: The values of this OccDemandSignalData.
+ :rtype: list[oci.demand_signal.models.OccDemandSignalValue]
+ """
+ return self._values
+
+ @values.setter
+ def values(self, values):
+ """
+ Sets the values of this OccDemandSignalData.
+ The values of forecast.
+
+
+ :param values: The values of this OccDemandSignalData.
+ :type: list[oci.demand_signal.models.OccDemandSignalValue]
+ """
+ self._values = values
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/occ_demand_signal_summary.py b/src/oci/demand_signal/models/occ_demand_signal_summary.py
new file mode 100644
index 000000000..dcaf0a7ba
--- /dev/null
+++ b/src/oci/demand_signal/models/occ_demand_signal_summary.py
@@ -0,0 +1,430 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class OccDemandSignalSummary(object):
+ """
+ Summary information about a OccDemandSignal.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new OccDemandSignalSummary object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param id:
+ The value to assign to the id property of this OccDemandSignalSummary.
+ :type id: str
+
+ :param display_name:
+ The value to assign to the display_name property of this OccDemandSignalSummary.
+ :type display_name: str
+
+ :param compartment_id:
+ The value to assign to the compartment_id property of this OccDemandSignalSummary.
+ :type compartment_id: str
+
+ :param is_active:
+ The value to assign to the is_active property of this OccDemandSignalSummary.
+ :type is_active: bool
+
+ :param time_created:
+ The value to assign to the time_created property of this OccDemandSignalSummary.
+ :type time_created: datetime
+
+ :param time_updated:
+ The value to assign to the time_updated property of this OccDemandSignalSummary.
+ :type time_updated: datetime
+
+ :param lifecycle_state:
+ The value to assign to the lifecycle_state property of this OccDemandSignalSummary.
+ :type lifecycle_state: str
+
+ :param lifecycle_details:
+ The value to assign to the lifecycle_details property of this OccDemandSignalSummary.
+ :type lifecycle_details: str
+
+ :param freeform_tags:
+ The value to assign to the freeform_tags property of this OccDemandSignalSummary.
+ :type freeform_tags: dict(str, str)
+
+ :param defined_tags:
+ The value to assign to the defined_tags property of this OccDemandSignalSummary.
+ :type defined_tags: dict(str, dict(str, object))
+
+ :param system_tags:
+ The value to assign to the system_tags property of this OccDemandSignalSummary.
+ :type system_tags: dict(str, dict(str, object))
+
+ """
+ self.swagger_types = {
+ 'id': 'str',
+ 'display_name': 'str',
+ 'compartment_id': 'str',
+ 'is_active': 'bool',
+ 'time_created': 'datetime',
+ 'time_updated': 'datetime',
+ 'lifecycle_state': 'str',
+ 'lifecycle_details': 'str',
+ 'freeform_tags': 'dict(str, str)',
+ 'defined_tags': 'dict(str, dict(str, object))',
+ 'system_tags': 'dict(str, dict(str, object))'
+ }
+
+ self.attribute_map = {
+ 'id': 'id',
+ 'display_name': 'displayName',
+ 'compartment_id': 'compartmentId',
+ 'is_active': 'isActive',
+ 'time_created': 'timeCreated',
+ 'time_updated': 'timeUpdated',
+ 'lifecycle_state': 'lifecycleState',
+ 'lifecycle_details': 'lifecycleDetails',
+ 'freeform_tags': 'freeformTags',
+ 'defined_tags': 'definedTags',
+ 'system_tags': 'systemTags'
+ }
+
+ self._id = None
+ self._display_name = None
+ self._compartment_id = None
+ self._is_active = None
+ self._time_created = None
+ self._time_updated = None
+ self._lifecycle_state = None
+ self._lifecycle_details = None
+ self._freeform_tags = None
+ self._defined_tags = None
+ self._system_tags = None
+
+ @property
+ def id(self):
+ """
+ **[Required]** Gets the id of this OccDemandSignalSummary.
+ The `OCID`__ of the OccDemandSignal.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+
+ :return: The id of this OccDemandSignalSummary.
+ :rtype: str
+ """
+ return self._id
+
+ @id.setter
+ def id(self, id):
+ """
+ Sets the id of this OccDemandSignalSummary.
+ The `OCID`__ of the OccDemandSignal.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+
+ :param id: The id of this OccDemandSignalSummary.
+ :type: str
+ """
+ self._id = id
+
+ @property
+ def display_name(self):
+ """
+ **[Required]** Gets the display_name of this OccDemandSignalSummary.
+ A user-friendly name. Does not have to be unique, and it's changeable.
+
+
+ :return: The display_name of this OccDemandSignalSummary.
+ :rtype: str
+ """
+ return self._display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """
+ Sets the display_name of this OccDemandSignalSummary.
+ A user-friendly name. Does not have to be unique, and it's changeable.
+
+
+ :param display_name: The display_name of this OccDemandSignalSummary.
+ :type: str
+ """
+ self._display_name = display_name
+
+ @property
+ def compartment_id(self):
+ """
+ **[Required]** Gets the compartment_id of this OccDemandSignalSummary.
+ The `OCID`__ of the compartment.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+
+ :return: The compartment_id of this OccDemandSignalSummary.
+ :rtype: str
+ """
+ return self._compartment_id
+
+ @compartment_id.setter
+ def compartment_id(self, compartment_id):
+ """
+ Sets the compartment_id of this OccDemandSignalSummary.
+ The `OCID`__ of the compartment.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+
+ :param compartment_id: The compartment_id of this OccDemandSignalSummary.
+ :type: str
+ """
+ self._compartment_id = compartment_id
+
+ @property
+ def is_active(self):
+ """
+ **[Required]** Gets the is_active of this OccDemandSignalSummary.
+ Indicator of whether to share the data with Oracle.
+
+
+ :return: The is_active of this OccDemandSignalSummary.
+ :rtype: bool
+ """
+ return self._is_active
+
+ @is_active.setter
+ def is_active(self, is_active):
+ """
+ Sets the is_active of this OccDemandSignalSummary.
+ Indicator of whether to share the data with Oracle.
+
+
+ :param is_active: The is_active of this OccDemandSignalSummary.
+ :type: bool
+ """
+ self._is_active = is_active
+
+ @property
+ def time_created(self):
+ """
+ **[Required]** Gets the time_created of this OccDemandSignalSummary.
+ The date and time the OccDemandSignal was created, in the format defined by `RFC 3339`__.
+ Example: `2016-08-25T21:10:29.600Z`
+
+ __ https://tools.ietf.org/html/rfc3339
+
+
+ :return: The time_created of this OccDemandSignalSummary.
+ :rtype: datetime
+ """
+ return self._time_created
+
+ @time_created.setter
+ def time_created(self, time_created):
+ """
+ Sets the time_created of this OccDemandSignalSummary.
+ The date and time the OccDemandSignal was created, in the format defined by `RFC 3339`__.
+ Example: `2016-08-25T21:10:29.600Z`
+
+ __ https://tools.ietf.org/html/rfc3339
+
+
+ :param time_created: The time_created of this OccDemandSignalSummary.
+ :type: datetime
+ """
+ self._time_created = time_created
+
+ @property
+ def time_updated(self):
+ """
+ Gets the time_updated of this OccDemandSignalSummary.
+ The date and time the OccDemandSignal was updated, in the format defined by `RFC 3339`__.
+
+ Example: `2016-08-25T21:10:29.600Z`
+
+ __ https://tools.ietf.org/html/rfc3339
+
+
+ :return: The time_updated of this OccDemandSignalSummary.
+ :rtype: datetime
+ """
+ return self._time_updated
+
+ @time_updated.setter
+ def time_updated(self, time_updated):
+ """
+ Sets the time_updated of this OccDemandSignalSummary.
+ The date and time the OccDemandSignal was updated, in the format defined by `RFC 3339`__.
+
+ Example: `2016-08-25T21:10:29.600Z`
+
+ __ https://tools.ietf.org/html/rfc3339
+
+
+ :param time_updated: The time_updated of this OccDemandSignalSummary.
+ :type: datetime
+ """
+ self._time_updated = time_updated
+
+ @property
+ def lifecycle_state(self):
+ """
+ **[Required]** Gets the lifecycle_state of this OccDemandSignalSummary.
+ The current state of the OccDemandSignal.
+
+
+ :return: The lifecycle_state of this OccDemandSignalSummary.
+ :rtype: str
+ """
+ return self._lifecycle_state
+
+ @lifecycle_state.setter
+ def lifecycle_state(self, lifecycle_state):
+ """
+ Sets the lifecycle_state of this OccDemandSignalSummary.
+ The current state of the OccDemandSignal.
+
+
+ :param lifecycle_state: The lifecycle_state of this OccDemandSignalSummary.
+ :type: str
+ """
+ self._lifecycle_state = lifecycle_state
+
+ @property
+ def lifecycle_details(self):
+ """
+ Gets the lifecycle_details of this OccDemandSignalSummary.
+ A message that describes the current state of the OccDemandSignal in more detail. For example,
+ can be used to provide actionable information for a resource in the Failed state.
+
+
+ :return: The lifecycle_details of this OccDemandSignalSummary.
+ :rtype: str
+ """
+ return self._lifecycle_details
+
+ @lifecycle_details.setter
+ def lifecycle_details(self, lifecycle_details):
+ """
+ Sets the lifecycle_details of this OccDemandSignalSummary.
+ A message that describes the current state of the OccDemandSignal in more detail. For example,
+ can be used to provide actionable information for a resource in the Failed state.
+
+
+ :param lifecycle_details: The lifecycle_details of this OccDemandSignalSummary.
+ :type: str
+ """
+ self._lifecycle_details = lifecycle_details
+
+ @property
+ def freeform_tags(self):
+ """
+ **[Required]** Gets the freeform_tags of this OccDemandSignalSummary.
+ 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`__.
+
+ Example: `{\"Department\": \"Finance\"}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :return: The freeform_tags of this OccDemandSignalSummary.
+ :rtype: dict(str, str)
+ """
+ return self._freeform_tags
+
+ @freeform_tags.setter
+ def freeform_tags(self, freeform_tags):
+ """
+ Sets the freeform_tags of this OccDemandSignalSummary.
+ 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`__.
+
+ Example: `{\"Department\": \"Finance\"}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :param freeform_tags: The freeform_tags of this OccDemandSignalSummary.
+ :type: dict(str, str)
+ """
+ self._freeform_tags = freeform_tags
+
+ @property
+ def defined_tags(self):
+ """
+ **[Required]** Gets the defined_tags of this OccDemandSignalSummary.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ For more information, see `Resource Tags`__.
+
+ Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :return: The defined_tags of this OccDemandSignalSummary.
+ :rtype: dict(str, dict(str, object))
+ """
+ return self._defined_tags
+
+ @defined_tags.setter
+ def defined_tags(self, defined_tags):
+ """
+ Sets the defined_tags of this OccDemandSignalSummary.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ For more information, see `Resource Tags`__.
+
+ Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :param defined_tags: The defined_tags of this OccDemandSignalSummary.
+ :type: dict(str, dict(str, object))
+ """
+ self._defined_tags = defined_tags
+
+ @property
+ def system_tags(self):
+ """
+ Gets the system_tags of this OccDemandSignalSummary.
+ System tags for this resource. Each key is predefined and scoped to a namespace.
+
+ Example: `{\"orcl-cloud\": {\"free-tier-retained\": \"true\"}}`
+
+
+ :return: The system_tags of this OccDemandSignalSummary.
+ :rtype: dict(str, dict(str, object))
+ """
+ return self._system_tags
+
+ @system_tags.setter
+ def system_tags(self, system_tags):
+ """
+ Sets the system_tags of this OccDemandSignalSummary.
+ System tags for this resource. Each key is predefined and scoped to a namespace.
+
+ Example: `{\"orcl-cloud\": {\"free-tier-retained\": \"true\"}}`
+
+
+ :param system_tags: The system_tags of this OccDemandSignalSummary.
+ :type: dict(str, dict(str, object))
+ """
+ self._system_tags = system_tags
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/occ_demand_signal_value.py b/src/oci/demand_signal/models/occ_demand_signal_value.py
new file mode 100644
index 000000000..58ef139e1
--- /dev/null
+++ b/src/oci/demand_signal/models/occ_demand_signal_value.py
@@ -0,0 +1,134 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class OccDemandSignalValue(object):
+ """
+ The Value of Demand Signal for particular month.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new OccDemandSignalValue object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param time_expected:
+ The value to assign to the time_expected property of this OccDemandSignalValue.
+ :type time_expected: datetime
+
+ :param value:
+ The value to assign to the value property of this OccDemandSignalValue.
+ :type value: float
+
+ :param comments:
+ The value to assign to the comments property of this OccDemandSignalValue.
+ :type comments: str
+
+ """
+ self.swagger_types = {
+ 'time_expected': 'datetime',
+ 'value': 'float',
+ 'comments': 'str'
+ }
+
+ self.attribute_map = {
+ 'time_expected': 'timeExpected',
+ 'value': 'value',
+ 'comments': 'comments'
+ }
+
+ self._time_expected = None
+ self._value = None
+ self._comments = None
+
+ @property
+ def time_expected(self):
+ """
+ **[Required]** Gets the time_expected of this OccDemandSignalValue.
+ The date of the Demand Signal Value.
+
+
+ :return: The time_expected of this OccDemandSignalValue.
+ :rtype: datetime
+ """
+ return self._time_expected
+
+ @time_expected.setter
+ def time_expected(self, time_expected):
+ """
+ Sets the time_expected of this OccDemandSignalValue.
+ The date of the Demand Signal Value.
+
+
+ :param time_expected: The time_expected of this OccDemandSignalValue.
+ :type: datetime
+ """
+ self._time_expected = time_expected
+
+ @property
+ def value(self):
+ """
+ **[Required]** Gets the value of this OccDemandSignalValue.
+ The Demand Signal Value.
+
+
+ :return: The value of this OccDemandSignalValue.
+ :rtype: float
+ """
+ return self._value
+
+ @value.setter
+ def value(self, value):
+ """
+ Sets the value of this OccDemandSignalValue.
+ The Demand Signal Value.
+
+
+ :param value: The value of this OccDemandSignalValue.
+ :type: float
+ """
+ self._value = value
+
+ @property
+ def comments(self):
+ """
+ Gets the comments of this OccDemandSignalValue.
+ Space provided for users to make comments regarding the value.
+
+
+ :return: The comments of this OccDemandSignalValue.
+ :rtype: str
+ """
+ return self._comments
+
+ @comments.setter
+ def comments(self, comments):
+ """
+ Sets the comments of this OccDemandSignalValue.
+ Space provided for users to make comments regarding the value.
+
+
+ :param comments: The comments of this OccDemandSignalValue.
+ :type: str
+ """
+ self._comments = comments
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/patch_insert_instruction.py b/src/oci/demand_signal/models/patch_insert_instruction.py
new file mode 100644
index 000000000..8346db481
--- /dev/null
+++ b/src/oci/demand_signal/models/patch_insert_instruction.py
@@ -0,0 +1,171 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+from .patch_instruction import PatchInstruction
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class PatchInsertInstruction(PatchInstruction):
+ """
+ An operation that inserts a value into an array, shifting array items as necessary and handling NOT_FOUND exceptions by creating the implied containing structure.
+ """
+
+ #: A constant which can be used with the position property of a PatchInsertInstruction.
+ #: This constant has a value of "BEFORE"
+ POSITION_BEFORE = "BEFORE"
+
+ #: A constant which can be used with the position property of a PatchInsertInstruction.
+ #: This constant has a value of "AFTER"
+ POSITION_AFTER = "AFTER"
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PatchInsertInstruction object with values from keyword arguments. The default value of the :py:attr:`~oci.demand_signal.models.PatchInsertInstruction.operation` attribute
+ of this class is ``INSERT`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param operation:
+ The value to assign to the operation property of this PatchInsertInstruction.
+ Allowed values for this property are: "REQUIRE", "PROHIBIT", "REPLACE", "INSERT", "REMOVE", "MOVE", "MERGE"
+ :type operation: str
+
+ :param selection:
+ The value to assign to the selection property of this PatchInsertInstruction.
+ :type selection: str
+
+ :param value:
+ The value to assign to the value property of this PatchInsertInstruction.
+ :type value: object
+
+ :param selected_item:
+ The value to assign to the selected_item property of this PatchInsertInstruction.
+ :type selected_item: str
+
+ :param position:
+ The value to assign to the position property of this PatchInsertInstruction.
+ Allowed values for this property are: "BEFORE", "AFTER"
+ :type position: str
+
+ """
+ self.swagger_types = {
+ 'operation': 'str',
+ 'selection': 'str',
+ 'value': 'object',
+ 'selected_item': 'str',
+ 'position': 'str'
+ }
+
+ self.attribute_map = {
+ 'operation': 'operation',
+ 'selection': 'selection',
+ 'value': 'value',
+ 'selected_item': 'selectedItem',
+ 'position': 'position'
+ }
+
+ self._operation = None
+ self._selection = None
+ self._value = None
+ self._selected_item = None
+ self._position = None
+ self._operation = 'INSERT'
+
+ @property
+ def value(self):
+ """
+ **[Required]** Gets the value of this PatchInsertInstruction.
+ A value to be inserted into the target.
+
+
+ :return: The value of this PatchInsertInstruction.
+ :rtype: object
+ """
+ return self._value
+
+ @value.setter
+ def value(self, value):
+ """
+ Sets the value of this PatchInsertInstruction.
+ A value to be inserted into the target.
+
+
+ :param value: The value of this PatchInsertInstruction.
+ :type: object
+ """
+ self._value = value
+
+ @property
+ def selected_item(self):
+ """
+ Gets the selected_item of this PatchInsertInstruction.
+ A selection to be evaluated against the array for identifying a particular reference item within it, with the same format and semantics as `selection`.
+
+
+ :return: The selected_item of this PatchInsertInstruction.
+ :rtype: str
+ """
+ return self._selected_item
+
+ @selected_item.setter
+ def selected_item(self, selected_item):
+ """
+ Sets the selected_item of this PatchInsertInstruction.
+ A selection to be evaluated against the array for identifying a particular reference item within it, with the same format and semantics as `selection`.
+
+
+ :param selected_item: The selected_item of this PatchInsertInstruction.
+ :type: str
+ """
+ self._selected_item = selected_item
+
+ @property
+ def position(self):
+ """
+ Gets the position of this PatchInsertInstruction.
+ Where to insert the value, relative to the first item matched by `selectedItem`.
+ If `selectedItem` is unspecified, then \"BEFORE\" specifies insertion at the first position in an array and \"AFTER\" specifies insertion at the last position.
+ If `selectedItem` is specified but results in an empty selection, then both values specify insertion at the last position.
+
+ Allowed values for this property are: "BEFORE", "AFTER"
+
+
+ :return: The position of this PatchInsertInstruction.
+ :rtype: str
+ """
+ return self._position
+
+ @position.setter
+ def position(self, position):
+ """
+ Sets the position of this PatchInsertInstruction.
+ Where to insert the value, relative to the first item matched by `selectedItem`.
+ If `selectedItem` is unspecified, then \"BEFORE\" specifies insertion at the first position in an array and \"AFTER\" specifies insertion at the last position.
+ If `selectedItem` is specified but results in an empty selection, then both values specify insertion at the last position.
+
+
+ :param position: The position of this PatchInsertInstruction.
+ :type: str
+ """
+ allowed_values = ["BEFORE", "AFTER"]
+ if not value_allowed_none_or_none_sentinel(position, allowed_values):
+ raise ValueError(
+ f"Invalid value for `position`, must be None or one of {allowed_values}"
+ )
+ self._position = position
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/patch_insert_multiple_instruction.py b/src/oci/demand_signal/models/patch_insert_multiple_instruction.py
new file mode 100644
index 000000000..63b3c3249
--- /dev/null
+++ b/src/oci/demand_signal/models/patch_insert_multiple_instruction.py
@@ -0,0 +1,171 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+from .patch_instruction import PatchInstruction
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class PatchInsertMultipleInstruction(PatchInstruction):
+ """
+ An operation that inserts multiple consecutive values into an array, shifting array items as necessary and handling NOT_FOUND exceptions by creating the implied containing structure.
+ """
+
+ #: A constant which can be used with the position property of a PatchInsertMultipleInstruction.
+ #: This constant has a value of "BEFORE"
+ POSITION_BEFORE = "BEFORE"
+
+ #: A constant which can be used with the position property of a PatchInsertMultipleInstruction.
+ #: This constant has a value of "AFTER"
+ POSITION_AFTER = "AFTER"
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PatchInsertMultipleInstruction object with values from keyword arguments. The default value of the :py:attr:`~oci.demand_signal.models.PatchInsertMultipleInstruction.operation` attribute
+ of this class is ``INSERT_MULTIPLE`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param operation:
+ The value to assign to the operation property of this PatchInsertMultipleInstruction.
+ Allowed values for this property are: "REQUIRE", "PROHIBIT", "REPLACE", "INSERT", "REMOVE", "MOVE", "MERGE"
+ :type operation: str
+
+ :param selection:
+ The value to assign to the selection property of this PatchInsertMultipleInstruction.
+ :type selection: str
+
+ :param values:
+ The value to assign to the values property of this PatchInsertMultipleInstruction.
+ :type values: list[object]
+
+ :param selected_item:
+ The value to assign to the selected_item property of this PatchInsertMultipleInstruction.
+ :type selected_item: str
+
+ :param position:
+ The value to assign to the position property of this PatchInsertMultipleInstruction.
+ Allowed values for this property are: "BEFORE", "AFTER"
+ :type position: str
+
+ """
+ self.swagger_types = {
+ 'operation': 'str',
+ 'selection': 'str',
+ 'values': 'list[object]',
+ 'selected_item': 'str',
+ 'position': 'str'
+ }
+
+ self.attribute_map = {
+ 'operation': 'operation',
+ 'selection': 'selection',
+ 'values': 'values',
+ 'selected_item': 'selectedItem',
+ 'position': 'position'
+ }
+
+ self._operation = None
+ self._selection = None
+ self._values = None
+ self._selected_item = None
+ self._position = None
+ self._operation = 'INSERT_MULTIPLE'
+
+ @property
+ def values(self):
+ """
+ **[Required]** Gets the values of this PatchInsertMultipleInstruction.
+ A list of consecutive values to be inserted into the target.
+
+
+ :return: The values of this PatchInsertMultipleInstruction.
+ :rtype: list[object]
+ """
+ return self._values
+
+ @values.setter
+ def values(self, values):
+ """
+ Sets the values of this PatchInsertMultipleInstruction.
+ A list of consecutive values to be inserted into the target.
+
+
+ :param values: The values of this PatchInsertMultipleInstruction.
+ :type: list[object]
+ """
+ self._values = values
+
+ @property
+ def selected_item(self):
+ """
+ Gets the selected_item of this PatchInsertMultipleInstruction.
+ A selection to be evaluated against the array for identifying a particular reference item within it, with the same format and semantics as `selection`.
+
+
+ :return: The selected_item of this PatchInsertMultipleInstruction.
+ :rtype: str
+ """
+ return self._selected_item
+
+ @selected_item.setter
+ def selected_item(self, selected_item):
+ """
+ Sets the selected_item of this PatchInsertMultipleInstruction.
+ A selection to be evaluated against the array for identifying a particular reference item within it, with the same format and semantics as `selection`.
+
+
+ :param selected_item: The selected_item of this PatchInsertMultipleInstruction.
+ :type: str
+ """
+ self._selected_item = selected_item
+
+ @property
+ def position(self):
+ """
+ Gets the position of this PatchInsertMultipleInstruction.
+ Where to insert the values, relative to the first item matched by `selectedItem`.
+ If `selectedItem` is unspecified, then \"BEFORE\" specifies insertion at the first position in an array and \"AFTER\" specifies insertion at the last position.
+ If `selectedItem` is specified but results in an empty selection, then both values specify insertion at the last position.
+
+ Allowed values for this property are: "BEFORE", "AFTER"
+
+
+ :return: The position of this PatchInsertMultipleInstruction.
+ :rtype: str
+ """
+ return self._position
+
+ @position.setter
+ def position(self, position):
+ """
+ Sets the position of this PatchInsertMultipleInstruction.
+ Where to insert the values, relative to the first item matched by `selectedItem`.
+ If `selectedItem` is unspecified, then \"BEFORE\" specifies insertion at the first position in an array and \"AFTER\" specifies insertion at the last position.
+ If `selectedItem` is specified but results in an empty selection, then both values specify insertion at the last position.
+
+
+ :param position: The position of this PatchInsertMultipleInstruction.
+ :type: str
+ """
+ allowed_values = ["BEFORE", "AFTER"]
+ if not value_allowed_none_or_none_sentinel(position, allowed_values):
+ raise ValueError(
+ f"Invalid value for `position`, must be None or one of {allowed_values}"
+ )
+ self._position = position
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/patch_instruction.py b/src/oci/demand_signal/models/patch_instruction.py
new file mode 100644
index 000000000..004c75569
--- /dev/null
+++ b/src/oci/demand_signal/models/patch_instruction.py
@@ -0,0 +1,192 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class PatchInstruction(object):
+ """
+ A single instruction to be included as part of Patch request content.
+ """
+
+ #: A constant which can be used with the operation property of a PatchInstruction.
+ #: This constant has a value of "REQUIRE"
+ OPERATION_REQUIRE = "REQUIRE"
+
+ #: A constant which can be used with the operation property of a PatchInstruction.
+ #: This constant has a value of "PROHIBIT"
+ OPERATION_PROHIBIT = "PROHIBIT"
+
+ #: A constant which can be used with the operation property of a PatchInstruction.
+ #: This constant has a value of "REPLACE"
+ OPERATION_REPLACE = "REPLACE"
+
+ #: A constant which can be used with the operation property of a PatchInstruction.
+ #: This constant has a value of "INSERT"
+ OPERATION_INSERT = "INSERT"
+
+ #: A constant which can be used with the operation property of a PatchInstruction.
+ #: This constant has a value of "REMOVE"
+ OPERATION_REMOVE = "REMOVE"
+
+ #: A constant which can be used with the operation property of a PatchInstruction.
+ #: This constant has a value of "MOVE"
+ OPERATION_MOVE = "MOVE"
+
+ #: A constant which can be used with the operation property of a PatchInstruction.
+ #: This constant has a value of "MERGE"
+ OPERATION_MERGE = "MERGE"
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PatchInstruction object with values from keyword arguments. This class has the following subclasses and if you are using this class as input
+ to a service operations then you should favor using a subclass over the base class:
+
+ * :class:`~oci.demand_signal.models.PatchMoveInstruction`
+ * :class:`~oci.demand_signal.models.PatchRemoveInstruction`
+ * :class:`~oci.demand_signal.models.PatchReplaceInstruction`
+ * :class:`~oci.demand_signal.models.PatchInsertMultipleInstruction`
+ * :class:`~oci.demand_signal.models.PatchInsertInstruction`
+ * :class:`~oci.demand_signal.models.PatchRequireInstruction`
+ * :class:`~oci.demand_signal.models.PatchMergeInstruction`
+ * :class:`~oci.demand_signal.models.PatchProhibitInstruction`
+
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param operation:
+ The value to assign to the operation property of this PatchInstruction.
+ Allowed values for this property are: "REQUIRE", "PROHIBIT", "REPLACE", "INSERT", "REMOVE", "MOVE", "MERGE"
+ :type operation: str
+
+ :param selection:
+ The value to assign to the selection property of this PatchInstruction.
+ :type selection: str
+
+ """
+ self.swagger_types = {
+ 'operation': 'str',
+ 'selection': 'str'
+ }
+
+ self.attribute_map = {
+ 'operation': 'operation',
+ 'selection': 'selection'
+ }
+
+ self._operation = None
+ self._selection = None
+
+ @staticmethod
+ def get_subtype(object_dictionary):
+ """
+ Given the hash representation of a subtype of this class,
+ use the info in the hash to return the class of the subtype.
+ """
+ type = object_dictionary['operation']
+
+ if type == 'MOVE':
+ return 'PatchMoveInstruction'
+
+ if type == 'REMOVE':
+ return 'PatchRemoveInstruction'
+
+ if type == 'REPLACE':
+ return 'PatchReplaceInstruction'
+
+ if type == 'INSERT_MULTIPLE':
+ return 'PatchInsertMultipleInstruction'
+
+ if type == 'INSERT':
+ return 'PatchInsertInstruction'
+
+ if type == 'REQUIRE':
+ return 'PatchRequireInstruction'
+
+ if type == 'MERGE':
+ return 'PatchMergeInstruction'
+
+ if type == 'PROHIBIT':
+ return 'PatchProhibitInstruction'
+ else:
+ return 'PatchInstruction'
+
+ @property
+ def operation(self):
+ """
+ **[Required]** Gets the operation of this PatchInstruction.
+ The type of this patch instruction.
+
+ Allowed values for this property are: "REQUIRE", "PROHIBIT", "REPLACE", "INSERT", "REMOVE", "MOVE", "MERGE"
+
+
+ :return: The operation of this PatchInstruction.
+ :rtype: str
+ """
+ return self._operation
+
+ @operation.setter
+ def operation(self, operation):
+ """
+ Sets the operation of this PatchInstruction.
+ The type of this patch instruction.
+
+
+ :param operation: The operation of this PatchInstruction.
+ :type: str
+ """
+ allowed_values = ["REQUIRE", "PROHIBIT", "REPLACE", "INSERT", "REMOVE", "MOVE", "MERGE"]
+ if not value_allowed_none_or_none_sentinel(operation, allowed_values):
+ raise ValueError(
+ f"Invalid value for `operation`, must be None or one of {allowed_values}"
+ )
+ self._operation = operation
+
+ @property
+ def selection(self):
+ """
+ **[Required]** Gets the selection of this PatchInstruction.
+ The set of values to which the operation applies as a `JMESPath expression`__ for evaluation against the context resource.
+ An operation fails if the selection yields an exception, except as otherwise specified.
+ Note that comparisons involving non-primitive values (objects or arrays) are not supported and will always evaluate to false.
+
+ __ https://jmespath.org/specification.html
+
+
+ :return: The selection of this PatchInstruction.
+ :rtype: str
+ """
+ return self._selection
+
+ @selection.setter
+ def selection(self, selection):
+ """
+ Sets the selection of this PatchInstruction.
+ The set of values to which the operation applies as a `JMESPath expression`__ for evaluation against the context resource.
+ An operation fails if the selection yields an exception, except as otherwise specified.
+ Note that comparisons involving non-primitive values (objects or arrays) are not supported and will always evaluate to false.
+
+ __ https://jmespath.org/specification.html
+
+
+ :param selection: The selection of this PatchInstruction.
+ :type: str
+ """
+ self._selection = selection
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/patch_merge_instruction.py b/src/oci/demand_signal/models/patch_merge_instruction.py
new file mode 100644
index 000000000..58e50df95
--- /dev/null
+++ b/src/oci/demand_signal/models/patch_merge_instruction.py
@@ -0,0 +1,97 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+from .patch_instruction import PatchInstruction
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class PatchMergeInstruction(PatchInstruction):
+ """
+ An operation that recursively updates items of the selection, or adding the value if the selection is empty.
+ If the value is not an object, it is used directly, otherwise each key-value member is used
+ to create or update a member of the same name in the target and the same process is applied recursively for each object-typed value
+ (similar to `RFC 7396`__ JSON Merge Patch, except that null values are copied
+ rather than transformed into deletions).
+ NOT_FOUND exceptions are handled by creating the implied containing structure.
+ To avoid referential errors if an item's descendant is also in the selection, items of the selection are processed in order of decreasing depth.
+
+ __ https://tools.ietf.org/html/rfc7396#section-2
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PatchMergeInstruction object with values from keyword arguments. The default value of the :py:attr:`~oci.demand_signal.models.PatchMergeInstruction.operation` attribute
+ of this class is ``MERGE`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param operation:
+ The value to assign to the operation property of this PatchMergeInstruction.
+ Allowed values for this property are: "REQUIRE", "PROHIBIT", "REPLACE", "INSERT", "REMOVE", "MOVE", "MERGE"
+ :type operation: str
+
+ :param selection:
+ The value to assign to the selection property of this PatchMergeInstruction.
+ :type selection: str
+
+ :param value:
+ The value to assign to the value property of this PatchMergeInstruction.
+ :type value: object
+
+ """
+ self.swagger_types = {
+ 'operation': 'str',
+ 'selection': 'str',
+ 'value': 'object'
+ }
+
+ self.attribute_map = {
+ 'operation': 'operation',
+ 'selection': 'selection',
+ 'value': 'value'
+ }
+
+ self._operation = None
+ self._selection = None
+ self._value = None
+ self._operation = 'MERGE'
+
+ @property
+ def value(self):
+ """
+ Gets the value of this PatchMergeInstruction.
+ A value to be merged into the target.
+
+
+ :return: The value of this PatchMergeInstruction.
+ :rtype: object
+ """
+ return self._value
+
+ @value.setter
+ def value(self, value):
+ """
+ Sets the value of this PatchMergeInstruction.
+ A value to be merged into the target.
+
+
+ :param value: The value of this PatchMergeInstruction.
+ :type: object
+ """
+ self._value = value
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/patch_move_instruction.py b/src/oci/demand_signal/models/patch_move_instruction.py
new file mode 100644
index 000000000..baff4d7f6
--- /dev/null
+++ b/src/oci/demand_signal/models/patch_move_instruction.py
@@ -0,0 +1,147 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+from .patch_instruction import PatchInstruction
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class PatchMoveInstruction(PatchInstruction):
+ """
+ An operation that \"puts\" values from elsewhere in the target, functionally equivalent to a single add and then a remove.
+ The first item of the selection is replaced, or created if the selection is empty.
+ NOT_FOUND exceptions in the selection are handled by creating the implied containing structure.
+ This operation fails if the `from` selection yields any exceptions, or if an item is moved to any of its descendants.
+ """
+
+ #: A constant which can be used with the position property of a PatchMoveInstruction.
+ #: This constant has a value of "AT"
+ POSITION_AT = "AT"
+
+ #: A constant which can be used with the position property of a PatchMoveInstruction.
+ #: This constant has a value of "BEFORE"
+ POSITION_BEFORE = "BEFORE"
+
+ #: A constant which can be used with the position property of a PatchMoveInstruction.
+ #: This constant has a value of "AFTER"
+ POSITION_AFTER = "AFTER"
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PatchMoveInstruction object with values from keyword arguments. The default value of the :py:attr:`~oci.demand_signal.models.PatchMoveInstruction.operation` attribute
+ of this class is ``MOVE`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param operation:
+ The value to assign to the operation property of this PatchMoveInstruction.
+ Allowed values for this property are: "REQUIRE", "PROHIBIT", "REPLACE", "INSERT", "REMOVE", "MOVE", "MERGE"
+ :type operation: str
+
+ :param selection:
+ The value to assign to the selection property of this PatchMoveInstruction.
+ :type selection: str
+
+ :param _from:
+ The value to assign to the _from property of this PatchMoveInstruction.
+ :type _from: str
+
+ :param position:
+ The value to assign to the position property of this PatchMoveInstruction.
+ Allowed values for this property are: "AT", "BEFORE", "AFTER"
+ :type position: str
+
+ """
+ self.swagger_types = {
+ 'operation': 'str',
+ 'selection': 'str',
+ '_from': 'str',
+ 'position': 'str'
+ }
+
+ self.attribute_map = {
+ 'operation': 'operation',
+ 'selection': 'selection',
+ '_from': 'from',
+ 'position': 'position'
+ }
+
+ self._operation = None
+ self._selection = None
+ self.__from = None
+ self._position = None
+ self._operation = 'MOVE'
+
+ @property
+ def _from(self):
+ """
+ **[Required]** Gets the _from of this PatchMoveInstruction.
+ The selection that is to be moved, with the same format and semantics as `selection`.
+
+
+ :return: The _from of this PatchMoveInstruction.
+ :rtype: str
+ """
+ return self.__from
+
+ @_from.setter
+ def _from(self, _from):
+ """
+ Sets the _from of this PatchMoveInstruction.
+ The selection that is to be moved, with the same format and semantics as `selection`.
+
+
+ :param _from: The _from of this PatchMoveInstruction.
+ :type: str
+ """
+ self.__from = _from
+
+ @property
+ def position(self):
+ """
+ Gets the position of this PatchMoveInstruction.
+ Where to insert the value in an array, relative to the first item in the selection.
+ If there is no such item, then \"BEFORE\" specifies insertion at the first position in an array and \"AFTER\" specifies insertion at the last position.
+ If the first item in the selection is not the child of an array, then this field has no effect.
+
+ Allowed values for this property are: "AT", "BEFORE", "AFTER"
+
+
+ :return: The position of this PatchMoveInstruction.
+ :rtype: str
+ """
+ return self._position
+
+ @position.setter
+ def position(self, position):
+ """
+ Sets the position of this PatchMoveInstruction.
+ Where to insert the value in an array, relative to the first item in the selection.
+ If there is no such item, then \"BEFORE\" specifies insertion at the first position in an array and \"AFTER\" specifies insertion at the last position.
+ If the first item in the selection is not the child of an array, then this field has no effect.
+
+
+ :param position: The position of this PatchMoveInstruction.
+ :type: str
+ """
+ allowed_values = ["AT", "BEFORE", "AFTER"]
+ if not value_allowed_none_or_none_sentinel(position, allowed_values):
+ raise ValueError(
+ f"Invalid value for `position`, must be None or one of {allowed_values}"
+ )
+ self._position = position
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/patch_occ_demand_signal_details.py b/src/oci/demand_signal/models/patch_occ_demand_signal_details.py
new file mode 100644
index 000000000..5ac5bdd87
--- /dev/null
+++ b/src/oci/demand_signal/models/patch_occ_demand_signal_details.py
@@ -0,0 +1,72 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class PatchOccDemandSignalDetails(object):
+ """
+ Demand Signal details to patch.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PatchOccDemandSignalDetails object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param items:
+ The value to assign to the items property of this PatchOccDemandSignalDetails.
+ :type items: list[oci.demand_signal.models.PatchInstruction]
+
+ """
+ self.swagger_types = {
+ 'items': 'list[PatchInstruction]'
+ }
+
+ self.attribute_map = {
+ 'items': 'items'
+ }
+
+ self._items = None
+
+ @property
+ def items(self):
+ """
+ Gets the items of this PatchOccDemandSignalDetails.
+ List of patch instructions.
+
+
+ :return: The items of this PatchOccDemandSignalDetails.
+ :rtype: list[oci.demand_signal.models.PatchInstruction]
+ """
+ return self._items
+
+ @items.setter
+ def items(self, items):
+ """
+ Sets the items of this PatchOccDemandSignalDetails.
+ List of patch instructions.
+
+
+ :param items: The items of this PatchOccDemandSignalDetails.
+ :type: list[oci.demand_signal.models.PatchInstruction]
+ """
+ self._items = items
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/patch_prohibit_instruction.py b/src/oci/demand_signal/models/patch_prohibit_instruction.py
new file mode 100644
index 000000000..bf8b720ef
--- /dev/null
+++ b/src/oci/demand_signal/models/patch_prohibit_instruction.py
@@ -0,0 +1,100 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+from .patch_instruction import PatchInstruction
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class PatchProhibitInstruction(PatchInstruction):
+ """
+ A precondition operation that requires a selection to be empty, or optionally to be non-empty but include no item with a specified value
+ (useful for asserting that a value does not exist before attempting to create it, avoiding accidental update).
+ It fails if value is provided and the selection includes an item matching it, or if value is not provided and the selection is not empty,
+ but ignores NOT_FOUND exceptions.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PatchProhibitInstruction object with values from keyword arguments. The default value of the :py:attr:`~oci.demand_signal.models.PatchProhibitInstruction.operation` attribute
+ of this class is ``PROHIBIT`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param operation:
+ The value to assign to the operation property of this PatchProhibitInstruction.
+ Allowed values for this property are: "REQUIRE", "PROHIBIT", "REPLACE", "INSERT", "REMOVE", "MOVE", "MERGE"
+ :type operation: str
+
+ :param selection:
+ The value to assign to the selection property of this PatchProhibitInstruction.
+ :type selection: str
+
+ :param value:
+ The value to assign to the value property of this PatchProhibitInstruction.
+ :type value: object
+
+ """
+ self.swagger_types = {
+ 'operation': 'str',
+ 'selection': 'str',
+ 'value': 'object'
+ }
+
+ self.attribute_map = {
+ 'operation': 'operation',
+ 'selection': 'selection',
+ 'value': 'value'
+ }
+
+ self._operation = None
+ self._selection = None
+ self._value = None
+ self._operation = 'PROHIBIT'
+
+ @property
+ def value(self):
+ """
+ Gets the value of this PatchProhibitInstruction.
+ A value to be compared against each item of the selection.
+ If this value is an object, then it matches any item that would be unaffected by applying this value as a merge operation.
+ Otherwise, it matches any item to which it is equal according to the rules of `JSON Schema`__.
+
+ __ https://tools.ietf.org/html/draft-handrews-json-schema-00#section-4.2.3
+
+
+ :return: The value of this PatchProhibitInstruction.
+ :rtype: object
+ """
+ return self._value
+
+ @value.setter
+ def value(self, value):
+ """
+ Sets the value of this PatchProhibitInstruction.
+ A value to be compared against each item of the selection.
+ If this value is an object, then it matches any item that would be unaffected by applying this value as a merge operation.
+ Otherwise, it matches any item to which it is equal according to the rules of `JSON Schema`__.
+
+ __ https://tools.ietf.org/html/draft-handrews-json-schema-00#section-4.2.3
+
+
+ :param value: The value of this PatchProhibitInstruction.
+ :type: object
+ """
+ self._value = value
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/patch_remove_instruction.py b/src/oci/demand_signal/models/patch_remove_instruction.py
new file mode 100644
index 000000000..0588a7124
--- /dev/null
+++ b/src/oci/demand_signal/models/patch_remove_instruction.py
@@ -0,0 +1,59 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+from .patch_instruction import PatchInstruction
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class PatchRemoveInstruction(PatchInstruction):
+ """
+ An operation that deletes items, ignoring NOT_FOUND exceptions.
+ To avoid referential errors if an item's descendant is also in the selection, items of the selection are processed in order of decreasing depth.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PatchRemoveInstruction object with values from keyword arguments. The default value of the :py:attr:`~oci.demand_signal.models.PatchRemoveInstruction.operation` attribute
+ of this class is ``REMOVE`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param operation:
+ The value to assign to the operation property of this PatchRemoveInstruction.
+ Allowed values for this property are: "REQUIRE", "PROHIBIT", "REPLACE", "INSERT", "REMOVE", "MOVE", "MERGE"
+ :type operation: str
+
+ :param selection:
+ The value to assign to the selection property of this PatchRemoveInstruction.
+ :type selection: str
+
+ """
+ self.swagger_types = {
+ 'operation': 'str',
+ 'selection': 'str'
+ }
+
+ self.attribute_map = {
+ 'operation': 'operation',
+ 'selection': 'selection'
+ }
+
+ self._operation = None
+ self._selection = None
+ self._operation = 'REMOVE'
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/patch_replace_instruction.py b/src/oci/demand_signal/models/patch_replace_instruction.py
new file mode 100644
index 000000000..185c9e767
--- /dev/null
+++ b/src/oci/demand_signal/models/patch_replace_instruction.py
@@ -0,0 +1,92 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+from .patch_instruction import PatchInstruction
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class PatchReplaceInstruction(PatchInstruction):
+ """
+ An operation that \"puts\" a value, replacing every item of the selection with it, or creating it if the selection is empty.
+ NOT_FOUND exceptions are handled by creating the implied containing structure (but note that this may put the target in an invalid state,
+ which can be prevented by use of precondition operations).
+ To avoid referential errors if an item's descendant is also in the selection, items of the selection are processed in order of decreasing depth.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PatchReplaceInstruction object with values from keyword arguments. The default value of the :py:attr:`~oci.demand_signal.models.PatchReplaceInstruction.operation` attribute
+ of this class is ``REPLACE`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param operation:
+ The value to assign to the operation property of this PatchReplaceInstruction.
+ Allowed values for this property are: "REQUIRE", "PROHIBIT", "REPLACE", "INSERT", "REMOVE", "MOVE", "MERGE"
+ :type operation: str
+
+ :param selection:
+ The value to assign to the selection property of this PatchReplaceInstruction.
+ :type selection: str
+
+ :param value:
+ The value to assign to the value property of this PatchReplaceInstruction.
+ :type value: object
+
+ """
+ self.swagger_types = {
+ 'operation': 'str',
+ 'selection': 'str',
+ 'value': 'object'
+ }
+
+ self.attribute_map = {
+ 'operation': 'operation',
+ 'selection': 'selection',
+ 'value': 'value'
+ }
+
+ self._operation = None
+ self._selection = None
+ self._value = None
+ self._operation = 'REPLACE'
+
+ @property
+ def value(self):
+ """
+ **[Required]** Gets the value of this PatchReplaceInstruction.
+ A value to be added into the target.
+
+
+ :return: The value of this PatchReplaceInstruction.
+ :rtype: object
+ """
+ return self._value
+
+ @value.setter
+ def value(self, value):
+ """
+ Sets the value of this PatchReplaceInstruction.
+ A value to be added into the target.
+
+
+ :param value: The value of this PatchReplaceInstruction.
+ :type: object
+ """
+ self._value = value
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/patch_require_instruction.py b/src/oci/demand_signal/models/patch_require_instruction.py
new file mode 100644
index 000000000..d6561a300
--- /dev/null
+++ b/src/oci/demand_signal/models/patch_require_instruction.py
@@ -0,0 +1,99 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+from .patch_instruction import PatchInstruction
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class PatchRequireInstruction(PatchInstruction):
+ """
+ A precondition operation that requires a selection to be non-empty, and optionally to include an item with a specified value
+ (useful for asserting that a value exists before attempting to update it, avoiding accidental creation).
+ It fails if the selection is empty, or if value is provided and no item of the selection matches it.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PatchRequireInstruction object with values from keyword arguments. The default value of the :py:attr:`~oci.demand_signal.models.PatchRequireInstruction.operation` attribute
+ of this class is ``REQUIRE`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param operation:
+ The value to assign to the operation property of this PatchRequireInstruction.
+ Allowed values for this property are: "REQUIRE", "PROHIBIT", "REPLACE", "INSERT", "REMOVE", "MOVE", "MERGE"
+ :type operation: str
+
+ :param selection:
+ The value to assign to the selection property of this PatchRequireInstruction.
+ :type selection: str
+
+ :param value:
+ The value to assign to the value property of this PatchRequireInstruction.
+ :type value: object
+
+ """
+ self.swagger_types = {
+ 'operation': 'str',
+ 'selection': 'str',
+ 'value': 'object'
+ }
+
+ self.attribute_map = {
+ 'operation': 'operation',
+ 'selection': 'selection',
+ 'value': 'value'
+ }
+
+ self._operation = None
+ self._selection = None
+ self._value = None
+ self._operation = 'REQUIRE'
+
+ @property
+ def value(self):
+ """
+ Gets the value of this PatchRequireInstruction.
+ A value to be compared against each item of the selection.
+ If this value is an object, then it matches any item that would be unaffected by applying this value as a merge operation.
+ Otherwise, it matches any item to which it is equal according to the rules of `JSON Schema`__.
+
+ __ https://tools.ietf.org/html/draft-handrews-json-schema-00#section-4.2.3
+
+
+ :return: The value of this PatchRequireInstruction.
+ :rtype: object
+ """
+ return self._value
+
+ @value.setter
+ def value(self, value):
+ """
+ Sets the value of this PatchRequireInstruction.
+ A value to be compared against each item of the selection.
+ If this value is an object, then it matches any item that would be unaffected by applying this value as a merge operation.
+ Otherwise, it matches any item to which it is equal according to the rules of `JSON Schema`__.
+
+ __ https://tools.ietf.org/html/draft-handrews-json-schema-00#section-4.2.3
+
+
+ :param value: The value of this PatchRequireInstruction.
+ :type: object
+ """
+ self._value = value
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/models/update_occ_demand_signal_details.py b/src/oci/demand_signal/models/update_occ_demand_signal_details.py
new file mode 100644
index 000000000..3ea9f7ab0
--- /dev/null
+++ b/src/oci/demand_signal/models/update_occ_demand_signal_details.py
@@ -0,0 +1,185 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+
+from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel # noqa: F401
+from oci.decorators import init_model_state_from_kwargs
+
+
+@init_model_state_from_kwargs
+class UpdateOccDemandSignalDetails(object):
+ """
+ The data to update a OccDemandSignal.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new UpdateOccDemandSignalDetails object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param display_name:
+ The value to assign to the display_name property of this UpdateOccDemandSignalDetails.
+ :type display_name: str
+
+ :param is_active:
+ The value to assign to the is_active property of this UpdateOccDemandSignalDetails.
+ :type is_active: bool
+
+ :param freeform_tags:
+ The value to assign to the freeform_tags property of this UpdateOccDemandSignalDetails.
+ :type freeform_tags: dict(str, str)
+
+ :param defined_tags:
+ The value to assign to the defined_tags property of this UpdateOccDemandSignalDetails.
+ :type defined_tags: dict(str, dict(str, object))
+
+ """
+ self.swagger_types = {
+ 'display_name': 'str',
+ 'is_active': 'bool',
+ 'freeform_tags': 'dict(str, str)',
+ 'defined_tags': 'dict(str, dict(str, object))'
+ }
+
+ self.attribute_map = {
+ 'display_name': 'displayName',
+ 'is_active': 'isActive',
+ 'freeform_tags': 'freeformTags',
+ 'defined_tags': 'definedTags'
+ }
+
+ self._display_name = None
+ self._is_active = None
+ self._freeform_tags = None
+ self._defined_tags = None
+
+ @property
+ def display_name(self):
+ """
+ Gets the display_name of this UpdateOccDemandSignalDetails.
+ A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
+
+
+ :return: The display_name of this UpdateOccDemandSignalDetails.
+ :rtype: str
+ """
+ return self._display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """
+ Sets the display_name of this UpdateOccDemandSignalDetails.
+ A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
+
+
+ :param display_name: The display_name of this UpdateOccDemandSignalDetails.
+ :type: str
+ """
+ self._display_name = display_name
+
+ @property
+ def is_active(self):
+ """
+ Gets the is_active of this UpdateOccDemandSignalDetails.
+ Indicator of whether to share the data with Oracle.
+
+
+ :return: The is_active of this UpdateOccDemandSignalDetails.
+ :rtype: bool
+ """
+ return self._is_active
+
+ @is_active.setter
+ def is_active(self, is_active):
+ """
+ Sets the is_active of this UpdateOccDemandSignalDetails.
+ Indicator of whether to share the data with Oracle.
+
+
+ :param is_active: The is_active of this UpdateOccDemandSignalDetails.
+ :type: bool
+ """
+ self._is_active = is_active
+
+ @property
+ def freeform_tags(self):
+ """
+ Gets the freeform_tags of this UpdateOccDemandSignalDetails.
+ 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`__.
+
+ Example: `{\"Department\": \"Finance\"}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :return: The freeform_tags of this UpdateOccDemandSignalDetails.
+ :rtype: dict(str, str)
+ """
+ return self._freeform_tags
+
+ @freeform_tags.setter
+ def freeform_tags(self, freeform_tags):
+ """
+ Sets the freeform_tags of this UpdateOccDemandSignalDetails.
+ 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`__.
+
+ Example: `{\"Department\": \"Finance\"}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :param freeform_tags: The freeform_tags of this UpdateOccDemandSignalDetails.
+ :type: dict(str, str)
+ """
+ self._freeform_tags = freeform_tags
+
+ @property
+ def defined_tags(self):
+ """
+ Gets the defined_tags of this UpdateOccDemandSignalDetails.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ For more information, see `Resource Tags`__.
+
+ Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :return: The defined_tags of this UpdateOccDemandSignalDetails.
+ :rtype: dict(str, dict(str, object))
+ """
+ return self._defined_tags
+
+ @defined_tags.setter
+ def defined_tags(self, defined_tags):
+ """
+ Sets the defined_tags of this UpdateOccDemandSignalDetails.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ For more information, see `Resource Tags`__.
+
+ Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm
+
+
+ :param defined_tags: The defined_tags of this UpdateOccDemandSignalDetails.
+ :type: dict(str, dict(str, object))
+ """
+ self._defined_tags = defined_tags
+
+ def __repr__(self):
+ return formatted_flat_dict(self)
+
+ def __eq__(self, other):
+ if other is None:
+ return False
+
+ return self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not self == other
diff --git a/src/oci/demand_signal/occ_demand_signal_client.py b/src/oci/demand_signal/occ_demand_signal_client.py
new file mode 100644
index 000000000..6b8c6f296
--- /dev/null
+++ b/src/oci/demand_signal/occ_demand_signal_client.py
@@ -0,0 +1,953 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+from __future__ import absolute_import
+
+from oci._vendor import requests # noqa: F401
+from oci._vendor import six
+
+from oci import retry, circuit_breaker # noqa: F401
+from oci.base_client import BaseClient
+from oci.config import get_config_value_or_default, validate_config
+from oci.signer import Signer
+from oci.util import Sentinel, get_signer_from_authentication_type, AUTHENTICATION_TYPE_FIELD_NAME
+from oci.exceptions import InvalidAlloyConfig
+from oci.alloy import OCI_SDK_ENABLED_SERVICES_SET
+from .models import demand_signal_type_mapping
+missing = Sentinel("Missing")
+
+
+class OccDemandSignalClient(object):
+ """
+ Use the OCI Control Center Demand Signal API to manage Demand Signals.
+ """
+
+ def __init__(self, config, **kwargs):
+ """
+ Creates a new service client
+
+ :param dict config:
+ Configuration keys and values as per `SDK and Tool Configuration `__.
+ The :py:meth:`~oci.config.from_file` method can be used to load configuration from a file. Alternatively, a ``dict`` can be passed. You can validate_config
+ the dict using :py:meth:`~oci.config.validate_config`
+
+ :param str service_endpoint: (optional)
+ The endpoint of the service to call using this client. For example ``https://iaas.us-ashburn-1.oraclecloud.com``. If this keyword argument is
+ not provided then it will be derived using the region in the config parameter. You should only provide this keyword argument if you have an explicit
+ need to specify a service endpoint.
+
+ :param timeout: (optional)
+ The connection and read timeouts for the client. The default values are connection timeout 10 seconds and read timeout 60 seconds. This keyword argument can be provided
+ as a single float, in which case the value provided is used for both the read and connection timeouts, or as a tuple of two floats. If
+ a tuple is provided then the first value is used as the connection timeout and the second value as the read timeout.
+ :type timeout: float or tuple(float, float)
+
+ :param signer: (optional)
+ The signer to use when signing requests made by the service client. The default is to use a :py:class:`~oci.signer.Signer` based on the values
+ provided in the config parameter.
+
+ One use case for this parameter is for `Instance Principals authentication `__
+ by passing an instance of :py:class:`~oci.auth.signers.InstancePrincipalsSecurityTokenSigner` as the value for this keyword argument
+ :type signer: :py:class:`~oci.signer.AbstractBaseSigner`
+
+ :param obj retry_strategy: (optional)
+ A retry strategy to apply to all calls made by this service client (i.e. at the client level). There is no retry strategy applied by default.
+ Retry strategies can also be applied at the operation level by passing a ``retry_strategy`` keyword argument as part of calling the operation.
+ Any value provided at the operation level will override whatever is specified at the client level.
+
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. A convenience :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY`
+ is also available. The specifics of the default retry strategy are described `here `__.
+
+ :param obj circuit_breaker_strategy: (optional)
+ A circuit breaker strategy to apply to all calls made by this service client (i.e. at the client level).
+ This client uses :py:data:`~oci.circuit_breaker.DEFAULT_CIRCUIT_BREAKER_STRATEGY` as default if no circuit breaker strategy is provided.
+ The specifics of circuit breaker strategy are described `here `__.
+
+ :param function circuit_breaker_callback: (optional)
+ Callback function to receive any exceptions triggerred by the circuit breaker.
+
+ :param bool client_level_realm_specific_endpoint_template_enabled: (optional)
+ A boolean flag to indicate whether or not this client should be created with realm specific endpoint template enabled or disable. By default, this will be set as None.
+
+ :param allow_control_chars: (optional)
+ allow_control_chars is a boolean to indicate whether or not this client should allow control characters in the response object. By default, the client will not
+ allow control characters to be in the response object.
+ """
+ if not OCI_SDK_ENABLED_SERVICES_SET.is_service_enabled("demand_signal"):
+ raise InvalidAlloyConfig("The Alloy configuration has disabled this service, this behavior is controlled by OCI_SDK_ENABLED_SERVICES_SET variable. Please check if your local alloy-config file configured the service you're targeting or contact the cloud provider on the availability of this service")
+
+ validate_config(config, signer=kwargs.get('signer'))
+ if 'signer' in kwargs:
+ signer = kwargs['signer']
+
+ elif AUTHENTICATION_TYPE_FIELD_NAME in config:
+ signer = get_signer_from_authentication_type(config)
+
+ else:
+ signer = Signer(
+ tenancy=config["tenancy"],
+ user=config["user"],
+ fingerprint=config["fingerprint"],
+ private_key_file_location=config.get("key_file"),
+ pass_phrase=get_config_value_or_default(config, "pass_phrase"),
+ private_key_content=config.get("key_content")
+ )
+
+ base_client_init_kwargs = {
+ 'regional_client': True,
+ 'service_endpoint': kwargs.get('service_endpoint'),
+ 'base_path': '/20240430',
+ 'service_endpoint_template': 'https://control-center-ds.{region}.oci.{secondLevelDomain}',
+ 'endpoint_service_name': 'control-center-ds',
+ 'service_endpoint_template_per_realm': { }, # noqa: E201 E202
+ 'skip_deserialization': kwargs.get('skip_deserialization', False),
+ 'circuit_breaker_strategy': kwargs.get('circuit_breaker_strategy', circuit_breaker.GLOBAL_CIRCUIT_BREAKER_STRATEGY),
+ 'client_level_realm_specific_endpoint_template_enabled': kwargs.get('client_level_realm_specific_endpoint_template_enabled')
+ }
+ if 'timeout' in kwargs:
+ base_client_init_kwargs['timeout'] = kwargs.get('timeout')
+ if base_client_init_kwargs.get('circuit_breaker_strategy') is None:
+ base_client_init_kwargs['circuit_breaker_strategy'] = circuit_breaker.DEFAULT_CIRCUIT_BREAKER_STRATEGY
+ if 'allow_control_chars' in kwargs:
+ base_client_init_kwargs['allow_control_chars'] = kwargs.get('allow_control_chars')
+ self.base_client = BaseClient("occ_demand_signal", config, signer, demand_signal_type_mapping, **base_client_init_kwargs)
+ self.retry_strategy = kwargs.get('retry_strategy')
+ self.circuit_breaker_callback = kwargs.get('circuit_breaker_callback')
+
+ def change_occ_demand_signal_compartment(self, occ_demand_signal_id, change_occ_demand_signal_compartment_details, **kwargs):
+ """
+ Moves a OccDemandSignal into a different compartment within the same tenancy. For information about moving resources between
+ compartments, see `Moving Resources to a Different Compartment`__.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/Identity/Tasks/managingcompartments.htm#moveRes
+
+
+ :param str occ_demand_signal_id: (required)
+ The `OCID`__ of the OccDemandSignal.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+ :param oci.demand_signal.models.ChangeOccDemandSignalCompartmentDetails change_occ_demand_signal_compartment_details: (required)
+ The information to be updated.
+
+ :param str if_match: (optional)
+ For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ `if-match` parameter to the value of the etag from a previous GET or POST response for
+ that resource. The resource will be updated or deleted only if the etag you provide
+ matches the resource's current etag value.
+
+ :param str opc_request_id: (optional)
+ Unique Oracle-assigned identifier for the request. If you need to contact
+ Oracle about a particular request, please provide the request ID.
+ The only valid characters for request IDs are letters, numbers,
+ underscore, and dash.
+
+ :param obj retry_strategy: (optional)
+ A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.
+
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
+ The specifics of the default retry strategy are described `here `__.
+
+ To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.
+
+ :param bool allow_control_chars: (optional)
+ allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
+ By default, the response will not allow control characters in strings
+
+ :return: A :class:`~oci.response.Response` object with data of type None
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use change_occ_demand_signal_compartment API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['occDemandSignalId']
+ resource_path = "/occDemandSignals/{occDemandSignalId}/actions/changeCompartment"
+ method = "POST"
+ operation_name = "change_occ_demand_signal_compartment"
+ api_reference_link = ""
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "if_match",
+ "opc_request_id"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"change_occ_demand_signal_compartment got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "occDemandSignalId": occ_demand_signal_id
+ }
+
+ path_params = {k: v for (k, v) in six.iteritems(path_params) if v is not missing}
+
+ for (k, v) in six.iteritems(path_params):
+ if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0):
+ raise ValueError(f'Parameter {k} cannot be None, whitespace or empty string')
+
+ header_params = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ "if-match": kwargs.get("if_match", missing),
+ "opc-request-id": kwargs.get("opc_request_id", missing)
+ }
+ header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None}
+
+ retry_strategy = self.base_client.get_preferred_retry_strategy(
+ operation_retry_strategy=kwargs.get('retry_strategy'),
+ client_retry_strategy=self.retry_strategy
+ )
+ if retry_strategy is None:
+ retry_strategy = retry.DEFAULT_RETRY_STRATEGY
+
+ if retry_strategy:
+ if not isinstance(retry_strategy, retry.NoneRetryStrategy):
+ self.base_client.add_opc_client_retries_header(header_params)
+ retry_strategy.add_circuit_breaker_callback(self.circuit_breaker_callback)
+ return retry_strategy.make_retrying_call(
+ self.base_client.call_api,
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ header_params=header_params,
+ body=change_occ_demand_signal_compartment_details,
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+ else:
+ return self.base_client.call_api(
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ header_params=header_params,
+ body=change_occ_demand_signal_compartment_details,
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+
+ def create_occ_demand_signal(self, create_occ_demand_signal_details, **kwargs):
+ """
+ Creates a OccDemandSignal.
+
+
+ :param oci.demand_signal.models.CreateOccDemandSignalDetails create_occ_demand_signal_details: (required)
+ Details for the new OccDemandSignal.
+
+ :param str opc_retry_token: (optional)
+ A token that uniquely identifies a request so it can be retried in case of a timeout or
+ server error without risk of running that same action again. Retry tokens expire after 24
+ hours, but can be invalidated before then due to conflicting operations. For example, if a resource
+ has been deleted and removed from the system, then a retry of the original creation request
+ might be rejected.
+
+ :param str opc_request_id: (optional)
+ Unique Oracle-assigned identifier for the request. If you need to contact
+ Oracle about a particular request, please provide the request ID.
+ The only valid characters for request IDs are letters, numbers,
+ underscore, and dash.
+
+ :param obj retry_strategy: (optional)
+ A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.
+
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
+ The specifics of the default retry strategy are described `here `__.
+
+ To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.
+
+ :param bool allow_control_chars: (optional)
+ allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
+ By default, the response will not allow control characters in strings
+
+ :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.demand_signal.models.OccDemandSignal`
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use create_occ_demand_signal API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = []
+ resource_path = "/occDemandSignals"
+ method = "POST"
+ operation_name = "create_occ_demand_signal"
+ api_reference_link = ""
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "opc_retry_token",
+ "opc_request_id"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"create_occ_demand_signal got unknown kwargs: {extra_kwargs!r}")
+
+ header_params = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ "opc-retry-token": kwargs.get("opc_retry_token", missing),
+ "opc-request-id": kwargs.get("opc_request_id", missing)
+ }
+ header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None}
+
+ retry_strategy = self.base_client.get_preferred_retry_strategy(
+ operation_retry_strategy=kwargs.get('retry_strategy'),
+ client_retry_strategy=self.retry_strategy
+ )
+ if retry_strategy is None:
+ retry_strategy = retry.DEFAULT_RETRY_STRATEGY
+
+ if retry_strategy:
+ if not isinstance(retry_strategy, retry.NoneRetryStrategy):
+ self.base_client.add_opc_retry_token_if_needed(header_params)
+ self.base_client.add_opc_client_retries_header(header_params)
+ retry_strategy.add_circuit_breaker_callback(self.circuit_breaker_callback)
+ return retry_strategy.make_retrying_call(
+ self.base_client.call_api,
+ resource_path=resource_path,
+ method=method,
+ header_params=header_params,
+ body=create_occ_demand_signal_details,
+ response_type="OccDemandSignal",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+ else:
+ return self.base_client.call_api(
+ resource_path=resource_path,
+ method=method,
+ header_params=header_params,
+ body=create_occ_demand_signal_details,
+ response_type="OccDemandSignal",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+
+ def delete_occ_demand_signal(self, occ_demand_signal_id, **kwargs):
+ """
+ Deletes a OccDemandSignal.
+
+
+ :param str occ_demand_signal_id: (required)
+ The `OCID`__ of the OccDemandSignal.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+ :param str if_match: (optional)
+ For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ `if-match` parameter to the value of the etag from a previous GET or POST response for
+ that resource. The resource will be updated or deleted only if the etag you provide
+ matches the resource's current etag value.
+
+ :param str opc_request_id: (optional)
+ Unique Oracle-assigned identifier for the request. If you need to contact
+ Oracle about a particular request, please provide the request ID.
+ The only valid characters for request IDs are letters, numbers,
+ underscore, and dash.
+
+ :param obj retry_strategy: (optional)
+ A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.
+
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
+ The specifics of the default retry strategy are described `here `__.
+
+ To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.
+
+ :param bool allow_control_chars: (optional)
+ allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
+ By default, the response will not allow control characters in strings
+
+ :return: A :class:`~oci.response.Response` object with data of type None
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use delete_occ_demand_signal API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['occDemandSignalId']
+ resource_path = "/occDemandSignals/{occDemandSignalId}"
+ method = "DELETE"
+ operation_name = "delete_occ_demand_signal"
+ api_reference_link = ""
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "if_match",
+ "opc_request_id"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"delete_occ_demand_signal got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "occDemandSignalId": occ_demand_signal_id
+ }
+
+ path_params = {k: v for (k, v) in six.iteritems(path_params) if v is not missing}
+
+ for (k, v) in six.iteritems(path_params):
+ if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0):
+ raise ValueError(f'Parameter {k} cannot be None, whitespace or empty string')
+
+ header_params = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ "if-match": kwargs.get("if_match", missing),
+ "opc-request-id": kwargs.get("opc_request_id", missing)
+ }
+ header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None}
+
+ retry_strategy = self.base_client.get_preferred_retry_strategy(
+ operation_retry_strategy=kwargs.get('retry_strategy'),
+ client_retry_strategy=self.retry_strategy
+ )
+ if retry_strategy is None:
+ retry_strategy = retry.DEFAULT_RETRY_STRATEGY
+
+ if retry_strategy:
+ if not isinstance(retry_strategy, retry.NoneRetryStrategy):
+ self.base_client.add_opc_client_retries_header(header_params)
+ retry_strategy.add_circuit_breaker_callback(self.circuit_breaker_callback)
+ return retry_strategy.make_retrying_call(
+ self.base_client.call_api,
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ header_params=header_params,
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+ else:
+ return self.base_client.call_api(
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ header_params=header_params,
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+
+ def get_occ_demand_signal(self, occ_demand_signal_id, **kwargs):
+ """
+ Gets information about a OccDemandSignal.
+
+
+ :param str occ_demand_signal_id: (required)
+ The `OCID`__ of the OccDemandSignal.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+ :param str opc_request_id: (optional)
+ Unique Oracle-assigned identifier for the request. If you need to contact
+ Oracle about a particular request, please provide the request ID.
+ The only valid characters for request IDs are letters, numbers,
+ underscore, and dash.
+
+ :param obj retry_strategy: (optional)
+ A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.
+
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
+ The specifics of the default retry strategy are described `here `__.
+
+ To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.
+
+ :param bool allow_control_chars: (optional)
+ allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
+ By default, the response will not allow control characters in strings
+
+ :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.demand_signal.models.OccDemandSignal`
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use get_occ_demand_signal API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['occDemandSignalId']
+ resource_path = "/occDemandSignals/{occDemandSignalId}"
+ method = "GET"
+ operation_name = "get_occ_demand_signal"
+ api_reference_link = ""
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "opc_request_id"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"get_occ_demand_signal got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "occDemandSignalId": occ_demand_signal_id
+ }
+
+ path_params = {k: v for (k, v) in six.iteritems(path_params) if v is not missing}
+
+ for (k, v) in six.iteritems(path_params):
+ if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0):
+ raise ValueError(f'Parameter {k} cannot be None, whitespace or empty string')
+
+ header_params = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ "opc-request-id": kwargs.get("opc_request_id", missing)
+ }
+ header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None}
+
+ retry_strategy = self.base_client.get_preferred_retry_strategy(
+ operation_retry_strategy=kwargs.get('retry_strategy'),
+ client_retry_strategy=self.retry_strategy
+ )
+ if retry_strategy is None:
+ retry_strategy = retry.DEFAULT_RETRY_STRATEGY
+
+ if retry_strategy:
+ if not isinstance(retry_strategy, retry.NoneRetryStrategy):
+ self.base_client.add_opc_client_retries_header(header_params)
+ retry_strategy.add_circuit_breaker_callback(self.circuit_breaker_callback)
+ return retry_strategy.make_retrying_call(
+ self.base_client.call_api,
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ header_params=header_params,
+ response_type="OccDemandSignal",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+ else:
+ return self.base_client.call_api(
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ header_params=header_params,
+ response_type="OccDemandSignal",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+
+ def list_occ_demand_signals(self, **kwargs):
+ """
+ Gets a list of OccDemandSignals.
+
+
+ :param str compartment_id: (optional)
+ The `OCID`__ of the compartment in which to list resources.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+ :param str lifecycle_state: (optional)
+ A filter to return only resources that match the given lifecycle state. The
+ state value is case-insensitive.
+
+ Allowed values are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"
+
+ :param str display_name: (optional)
+ A filter to return only resources that match the given display name exactly.
+
+ :param str id: (optional)
+ The `OCID`__ of the OccDemandSignal.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+ :param int limit: (optional)
+ For list pagination. The maximum number of results per page, or items to return in a
+ paginated \"List\" call. For important details about how pagination works, see
+ `List Pagination`__.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine
+
+ :param str page: (optional)
+ For list pagination. The value of the opc-next-page response header from the previous
+ \"List\" call. For important details about how pagination works, see
+ `List Pagination`__.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine
+
+ :param str sort_order: (optional)
+ The sort order to use, either ascending (`ASC`) or descending (`DESC`).
+
+ Allowed values are: "ASC", "DESC"
+
+ :param str sort_by: (optional)
+ The field to sort by. You can provide only one sort order. Default order for `timeCreated`
+ is descending. Default order for `displayName` is ascending.
+
+ Allowed values are: "timeCreated", "displayName"
+
+ :param str opc_request_id: (optional)
+ Unique Oracle-assigned identifier for the request. If you need to contact
+ Oracle about a particular request, please provide the request ID.
+ The only valid characters for request IDs are letters, numbers,
+ underscore, and dash.
+
+ :param obj retry_strategy: (optional)
+ A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.
+
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
+ The specifics of the default retry strategy are described `here `__.
+
+ To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.
+
+ :param bool allow_control_chars: (optional)
+ allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
+ By default, the response will not allow control characters in strings
+
+ :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.demand_signal.models.OccDemandSignalCollection`
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use list_occ_demand_signals API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = []
+ resource_path = "/occDemandSignals"
+ method = "GET"
+ operation_name = "list_occ_demand_signals"
+ api_reference_link = ""
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "compartment_id",
+ "lifecycle_state",
+ "display_name",
+ "id",
+ "limit",
+ "page",
+ "sort_order",
+ "sort_by",
+ "opc_request_id"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"list_occ_demand_signals got unknown kwargs: {extra_kwargs!r}")
+
+ if 'lifecycle_state' in kwargs:
+ lifecycle_state_allowed_values = ["CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED"]
+ if kwargs['lifecycle_state'] not in lifecycle_state_allowed_values:
+ raise ValueError(
+ f"Invalid value for `lifecycle_state`, must be one of { lifecycle_state_allowed_values }"
+ )
+
+ if 'sort_order' in kwargs:
+ sort_order_allowed_values = ["ASC", "DESC"]
+ if kwargs['sort_order'] not in sort_order_allowed_values:
+ raise ValueError(
+ f"Invalid value for `sort_order`, must be one of { sort_order_allowed_values }"
+ )
+
+ if 'sort_by' in kwargs:
+ sort_by_allowed_values = ["timeCreated", "displayName"]
+ if kwargs['sort_by'] not in sort_by_allowed_values:
+ raise ValueError(
+ f"Invalid value for `sort_by`, must be one of { sort_by_allowed_values }"
+ )
+
+ query_params = {
+ "compartmentId": kwargs.get("compartment_id", missing),
+ "lifecycleState": kwargs.get("lifecycle_state", missing),
+ "displayName": kwargs.get("display_name", missing),
+ "id": kwargs.get("id", missing),
+ "limit": kwargs.get("limit", missing),
+ "page": kwargs.get("page", missing),
+ "sortOrder": kwargs.get("sort_order", missing),
+ "sortBy": kwargs.get("sort_by", missing)
+ }
+ query_params = {k: v for (k, v) in six.iteritems(query_params) if v is not missing and v is not None}
+
+ header_params = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ "opc-request-id": kwargs.get("opc_request_id", missing)
+ }
+ header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None}
+
+ retry_strategy = self.base_client.get_preferred_retry_strategy(
+ operation_retry_strategy=kwargs.get('retry_strategy'),
+ client_retry_strategy=self.retry_strategy
+ )
+ if retry_strategy is None:
+ retry_strategy = retry.DEFAULT_RETRY_STRATEGY
+
+ if retry_strategy:
+ if not isinstance(retry_strategy, retry.NoneRetryStrategy):
+ self.base_client.add_opc_client_retries_header(header_params)
+ retry_strategy.add_circuit_breaker_callback(self.circuit_breaker_callback)
+ return retry_strategy.make_retrying_call(
+ self.base_client.call_api,
+ resource_path=resource_path,
+ method=method,
+ query_params=query_params,
+ header_params=header_params,
+ response_type="OccDemandSignalCollection",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+ else:
+ return self.base_client.call_api(
+ resource_path=resource_path,
+ method=method,
+ query_params=query_params,
+ header_params=header_params,
+ response_type="OccDemandSignalCollection",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+
+ def patch_occ_demand_signal(self, occ_demand_signal_id, patch_occ_demand_signal_details, **kwargs):
+ """
+ Updates the data of an OccDemandSignal.
+
+
+ :param str occ_demand_signal_id: (required)
+ The `OCID`__ of the OccDemandSignal.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+ :param oci.demand_signal.models.PatchOccDemandSignalDetails patch_occ_demand_signal_details: (required)
+ The information to be updated.
+
+ :param str if_match: (optional)
+ For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ `if-match` parameter to the value of the etag from a previous GET or POST response for
+ that resource. The resource will be updated or deleted only if the etag you provide
+ matches the resource's current etag value.
+
+ :param str opc_request_id: (optional)
+ Unique Oracle-assigned identifier for the request. If you need to contact
+ Oracle about a particular request, please provide the request ID.
+ The only valid characters for request IDs are letters, numbers,
+ underscore, and dash.
+
+ :param obj retry_strategy: (optional)
+ A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.
+
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
+ The specifics of the default retry strategy are described `here `__.
+
+ To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.
+
+ :param bool allow_control_chars: (optional)
+ allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
+ By default, the response will not allow control characters in strings
+
+ :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.demand_signal.models.OccDemandSignal`
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use patch_occ_demand_signal API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['occDemandSignalId']
+ resource_path = "/occDemandSignals/{occDemandSignalId}"
+ method = "PATCH"
+ operation_name = "patch_occ_demand_signal"
+ api_reference_link = ""
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "if_match",
+ "opc_request_id"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"patch_occ_demand_signal got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "occDemandSignalId": occ_demand_signal_id
+ }
+
+ path_params = {k: v for (k, v) in six.iteritems(path_params) if v is not missing}
+
+ for (k, v) in six.iteritems(path_params):
+ if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0):
+ raise ValueError(f'Parameter {k} cannot be None, whitespace or empty string')
+
+ header_params = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ "if-match": kwargs.get("if_match", missing),
+ "opc-request-id": kwargs.get("opc_request_id", missing)
+ }
+ header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None}
+
+ retry_strategy = self.base_client.get_preferred_retry_strategy(
+ operation_retry_strategy=kwargs.get('retry_strategy'),
+ client_retry_strategy=self.retry_strategy
+ )
+ if retry_strategy is None:
+ retry_strategy = retry.DEFAULT_RETRY_STRATEGY
+
+ if retry_strategy:
+ if not isinstance(retry_strategy, retry.NoneRetryStrategy):
+ self.base_client.add_opc_client_retries_header(header_params)
+ retry_strategy.add_circuit_breaker_callback(self.circuit_breaker_callback)
+ return retry_strategy.make_retrying_call(
+ self.base_client.call_api,
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ header_params=header_params,
+ body=patch_occ_demand_signal_details,
+ response_type="OccDemandSignal",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+ else:
+ return self.base_client.call_api(
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ header_params=header_params,
+ body=patch_occ_demand_signal_details,
+ response_type="OccDemandSignal",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+
+ def update_occ_demand_signal(self, occ_demand_signal_id, update_occ_demand_signal_details, **kwargs):
+ """
+ Updates a OccDemandSignal.
+
+
+ :param str occ_demand_signal_id: (required)
+ The `OCID`__ of the OccDemandSignal.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+ :param oci.demand_signal.models.UpdateOccDemandSignalDetails update_occ_demand_signal_details: (required)
+ The information to be updated.
+
+ :param str if_match: (optional)
+ For optimistic concurrency control. In the PUT or DELETE call for a resource, set the
+ `if-match` parameter to the value of the etag from a previous GET or POST response for
+ that resource. The resource will be updated or deleted only if the etag you provide
+ matches the resource's current etag value.
+
+ :param str opc_request_id: (optional)
+ Unique Oracle-assigned identifier for the request. If you need to contact
+ Oracle about a particular request, please provide the request ID.
+ The only valid characters for request IDs are letters, numbers,
+ underscore, and dash.
+
+ :param obj retry_strategy: (optional)
+ A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.
+
+ This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
+ The specifics of the default retry strategy are described `here `__.
+
+ To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.
+
+ :param bool allow_control_chars: (optional)
+ allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
+ By default, the response will not allow control characters in strings
+
+ :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.demand_signal.models.OccDemandSignal`
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use update_occ_demand_signal API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['occDemandSignalId']
+ resource_path = "/occDemandSignals/{occDemandSignalId}"
+ method = "PUT"
+ operation_name = "update_occ_demand_signal"
+ api_reference_link = ""
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "if_match",
+ "opc_request_id"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"update_occ_demand_signal got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "occDemandSignalId": occ_demand_signal_id
+ }
+
+ path_params = {k: v for (k, v) in six.iteritems(path_params) if v is not missing}
+
+ for (k, v) in six.iteritems(path_params):
+ if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0):
+ raise ValueError(f'Parameter {k} cannot be None, whitespace or empty string')
+
+ header_params = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ "if-match": kwargs.get("if_match", missing),
+ "opc-request-id": kwargs.get("opc_request_id", missing)
+ }
+ header_params = {k: v for (k, v) in six.iteritems(header_params) if v is not missing and v is not None}
+
+ retry_strategy = self.base_client.get_preferred_retry_strategy(
+ operation_retry_strategy=kwargs.get('retry_strategy'),
+ client_retry_strategy=self.retry_strategy
+ )
+ if retry_strategy is None:
+ retry_strategy = retry.DEFAULT_RETRY_STRATEGY
+
+ if retry_strategy:
+ if not isinstance(retry_strategy, retry.NoneRetryStrategy):
+ self.base_client.add_opc_client_retries_header(header_params)
+ retry_strategy.add_circuit_breaker_callback(self.circuit_breaker_callback)
+ return retry_strategy.make_retrying_call(
+ self.base_client.call_api,
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ header_params=header_params,
+ body=update_occ_demand_signal_details,
+ response_type="OccDemandSignal",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+ else:
+ return self.base_client.call_api(
+ resource_path=resource_path,
+ method=method,
+ path_params=path_params,
+ header_params=header_params,
+ body=update_occ_demand_signal_details,
+ response_type="OccDemandSignal",
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
diff --git a/src/oci/demand_signal/occ_demand_signal_client_composite_operations.py b/src/oci/demand_signal/occ_demand_signal_client_composite_operations.py
new file mode 100644
index 000000000..9b0f3d6e5
--- /dev/null
+++ b/src/oci/demand_signal/occ_demand_signal_client_composite_operations.py
@@ -0,0 +1,176 @@
+# coding: utf-8
+# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
+# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+
+# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20240430
+
+import oci # noqa: F401
+from oci.util import WAIT_RESOURCE_NOT_FOUND # noqa: F401
+
+
+class OccDemandSignalClientCompositeOperations(object):
+ """
+ This class provides a wrapper around :py:class:`~oci.demand_signal.OccDemandSignalClient` and offers convenience methods
+ for operations that would otherwise need to be chained together. For example, instead of performing an action
+ on a resource (e.g. launching an instance, creating a load balancer) and then using a waiter to wait for the resource
+ to enter a given state, you can call a single method in this class to accomplish the same functionality
+ """
+
+ def __init__(self, client, **kwargs):
+ """
+ Creates a new OccDemandSignalClientCompositeOperations object
+
+ :param OccDemandSignalClient client:
+ The service client which will be wrapped by this object
+ """
+ self.client = client
+
+ def create_occ_demand_signal_and_wait_for_state(self, create_occ_demand_signal_details, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}):
+ """
+ Calls :py:func:`~oci.demand_signal.OccDemandSignalClient.create_occ_demand_signal` and waits for the :py:class:`~oci.demand_signal.models.OccDemandSignal` acted upon
+ to enter the given state(s).
+
+ :param oci.demand_signal.models.CreateOccDemandSignalDetails create_occ_demand_signal_details: (required)
+ Details for the new OccDemandSignal.
+
+ :param list[str] wait_for_states:
+ An array of states to wait on. These should be valid values for :py:attr:`~oci.demand_signal.models.OccDemandSignal.lifecycle_state`
+
+ :param dict operation_kwargs:
+ A dictionary of keyword arguments to pass to :py:func:`~oci.demand_signal.OccDemandSignalClient.create_occ_demand_signal`
+
+ :param dict waiter_kwargs:
+ A dictionary of keyword arguments to pass to the :py:func:`oci.wait_until` function. For example, you could pass ``max_interval_seconds`` or ``max_interval_seconds``
+ as dictionary keys to modify how long the waiter function will wait between retries and the maximum amount of time it will wait
+ """
+ operation_result = self.client.create_occ_demand_signal(create_occ_demand_signal_details, **operation_kwargs)
+ if not wait_for_states:
+ return operation_result
+ lowered_wait_for_states = [w.lower() for w in wait_for_states]
+ occ_demand_signal_id = operation_result.data.id
+
+ try:
+ waiter_result = oci.wait_until(
+ self.client,
+ self.client.get_occ_demand_signal(occ_demand_signal_id), # noqa: F821
+ evaluate_response=lambda r: getattr(r.data, 'lifecycle_state') and getattr(r.data, 'lifecycle_state').lower() in lowered_wait_for_states,
+ **waiter_kwargs
+ )
+ result_to_return = waiter_result
+
+ return result_to_return
+ except (NameError, TypeError) as e:
+ if not e.args:
+ e.args = ('',)
+ e.args = e.args + ('This composite operation is currently not supported in the SDK. Please use the operation from the service client and use waiters as an alternative. For more information on waiters, visit: "https://docs.oracle.com/en-us/iaas/tools/python/latest/api/waiters.html"', )
+ raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e)
+ except Exception as e:
+ raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e)
+
+ def delete_occ_demand_signal_and_wait_for_state(self, occ_demand_signal_id, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}):
+ """
+ Calls :py:func:`~oci.demand_signal.OccDemandSignalClient.delete_occ_demand_signal` and waits for the :py:class:`~oci.demand_signal.models.OccDemandSignal` acted upon
+ to enter the given state(s).
+
+ :param str occ_demand_signal_id: (required)
+ The `OCID`__ of the OccDemandSignal.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+ :param list[str] wait_for_states:
+ An array of states to wait on. These should be valid values for :py:attr:`~oci.demand_signal.models.OccDemandSignal.lifecycle_state`
+
+ :param dict operation_kwargs:
+ A dictionary of keyword arguments to pass to :py:func:`~oci.demand_signal.OccDemandSignalClient.delete_occ_demand_signal`
+
+ :param dict waiter_kwargs:
+ A dictionary of keyword arguments to pass to the :py:func:`oci.wait_until` function. For example, you could pass ``max_interval_seconds`` or ``max_interval_seconds``
+ as dictionary keys to modify how long the waiter function will wait between retries and the maximum amount of time it will wait
+ """
+ initial_get_result = self.client.get_occ_demand_signal(occ_demand_signal_id)
+ operation_result = None
+ try:
+ operation_result = self.client.delete_occ_demand_signal(occ_demand_signal_id, **operation_kwargs)
+ except oci.exceptions.ServiceError as e:
+ if e.status == 404:
+ return WAIT_RESOURCE_NOT_FOUND
+ else:
+ raise e
+
+ if not wait_for_states:
+ return operation_result
+ lowered_wait_for_states = [w.lower() for w in wait_for_states]
+
+ try:
+ if ("succeed_on_not_found" in waiter_kwargs) and (waiter_kwargs["succeed_on_not_found"] is False):
+ self.client.base_client.logger.warning("The waiter kwarg succeed_on_not_found was passed as False for the delete composite operation delete_occ_demand_signal, this would result in the operation to fail if the resource is not found! Please, do not pass this kwarg if this was not intended")
+ else:
+ """
+ If the user does not send in this value, we set it to True by default.
+ We are doing this because during a delete resource scenario and waiting on its state, the service can
+ return a 404 NOT FOUND exception as the resource was deleted and a get on its state would fail
+ """
+ waiter_kwargs["succeed_on_not_found"] = True
+ waiter_result = oci.wait_until(
+ self.client,
+ initial_get_result, # noqa: F821
+ evaluate_response=lambda r: getattr(r.data, 'lifecycle_state') and getattr(r.data, 'lifecycle_state').lower() in lowered_wait_for_states,
+ **waiter_kwargs
+ )
+ result_to_return = waiter_result
+
+ return result_to_return
+ except (NameError, TypeError) as e:
+ if not e.args:
+ e.args = ('',)
+ e.args = e.args + ('This composite operation is currently not supported in the SDK. Please use the operation from the service client and use waiters as an alternative. For more information on waiters, visit: "https://docs.oracle.com/en-us/iaas/tools/python/latest/api/waiters.html"', )
+ raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e)
+ except Exception as e:
+ raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e)
+
+ def update_occ_demand_signal_and_wait_for_state(self, occ_demand_signal_id, update_occ_demand_signal_details, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}):
+ """
+ Calls :py:func:`~oci.demand_signal.OccDemandSignalClient.update_occ_demand_signal` and waits for the :py:class:`~oci.demand_signal.models.OccDemandSignal` acted upon
+ to enter the given state(s).
+
+ :param str occ_demand_signal_id: (required)
+ The `OCID`__ of the OccDemandSignal.
+
+ __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm
+
+ :param oci.demand_signal.models.UpdateOccDemandSignalDetails update_occ_demand_signal_details: (required)
+ The information to be updated.
+
+ :param list[str] wait_for_states:
+ An array of states to wait on. These should be valid values for :py:attr:`~oci.demand_signal.models.OccDemandSignal.lifecycle_state`
+
+ :param dict operation_kwargs:
+ A dictionary of keyword arguments to pass to :py:func:`~oci.demand_signal.OccDemandSignalClient.update_occ_demand_signal`
+
+ :param dict waiter_kwargs:
+ A dictionary of keyword arguments to pass to the :py:func:`oci.wait_until` function. For example, you could pass ``max_interval_seconds`` or ``max_interval_seconds``
+ as dictionary keys to modify how long the waiter function will wait between retries and the maximum amount of time it will wait
+ """
+ operation_result = self.client.update_occ_demand_signal(occ_demand_signal_id, update_occ_demand_signal_details, **operation_kwargs)
+ if not wait_for_states:
+ return operation_result
+ lowered_wait_for_states = [w.lower() for w in wait_for_states]
+ occ_demand_signal_id = operation_result.data.id
+
+ try:
+ waiter_result = oci.wait_until(
+ self.client,
+ self.client.get_occ_demand_signal(occ_demand_signal_id), # noqa: F821
+ evaluate_response=lambda r: getattr(r.data, 'lifecycle_state') and getattr(r.data, 'lifecycle_state').lower() in lowered_wait_for_states,
+ **waiter_kwargs
+ )
+ result_to_return = waiter_result
+
+ return result_to_return
+ except (NameError, TypeError) as e:
+ if not e.args:
+ e.args = ('',)
+ e.args = e.args + ('This composite operation is currently not supported in the SDK. Please use the operation from the service client and use waiters as an alternative. For more information on waiters, visit: "https://docs.oracle.com/en-us/iaas/tools/python/latest/api/waiters.html"', )
+ raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e)
+ except Exception as e:
+ raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e)
diff --git a/src/oci/jms_java_downloads/java_download_client.py b/src/oci/jms_java_downloads/java_download_client.py
index 213710926..4850521bf 100644
--- a/src/oci/jms_java_downloads/java_download_client.py
+++ b/src/oci/jms_java_downloads/java_download_client.py
@@ -22,7 +22,7 @@
class JavaDownloadClient(object):
"""
- The APIs for the download engine of the Java Management Service.
+ The APIs for the Java Download feature of Java Management Service.
"""
def __init__(self, config, **kwargs):
@@ -321,6 +321,7 @@ def create_java_download_report(self, create_java_download_report_details, **kwa
def create_java_download_token(self, create_java_download_token_details, **kwargs):
"""
Creates a new JavaDownloadToken in the tenancy with specified attributes.
+ Ensure that you review the license terms before token generation. Visit the Oracle Java Downloads page to understand the license terms of the Java version for which you are generating a token. By generating a token, you agree to the associated license terms. See Oracle JDK Licensing - FAQs for detailed information.
:param oci.jms_java_downloads.models.CreateJavaDownloadTokenDetails create_java_download_token_details: (required)
diff --git a/src/oci/jms_java_downloads/models/create_java_download_report_details.py b/src/oci/jms_java_downloads/models/create_java_download_report_details.py
index 48ee28d2d..971b78d9f 100644
--- a/src/oci/jms_java_downloads/models/create_java_download_report_details.py
+++ b/src/oci/jms_java_downloads/models/create_java_download_report_details.py
@@ -71,6 +71,14 @@ def __init__(self, **kwargs):
Allowed values for this property are: "CSV"
:type format: str
+ :param freeform_tags:
+ The value to assign to the freeform_tags property of this CreateJavaDownloadReportDetails.
+ :type freeform_tags: dict(str, str)
+
+ :param defined_tags:
+ The value to assign to the defined_tags property of this CreateJavaDownloadReportDetails.
+ :type defined_tags: dict(str, dict(str, object))
+
"""
self.swagger_types = {
'compartment_id': 'str',
@@ -78,7 +86,9 @@ def __init__(self, **kwargs):
'time_end': 'datetime',
'sort_by': 'str',
'sort_order': 'str',
- 'format': 'str'
+ 'format': 'str',
+ 'freeform_tags': 'dict(str, str)',
+ 'defined_tags': 'dict(str, dict(str, object))'
}
self.attribute_map = {
@@ -87,7 +97,9 @@ def __init__(self, **kwargs):
'time_end': 'timeEnd',
'sort_by': 'sortBy',
'sort_order': 'sortOrder',
- 'format': 'format'
+ 'format': 'format',
+ 'freeform_tags': 'freeformTags',
+ 'defined_tags': 'definedTags'
}
self._compartment_id = None
@@ -96,6 +108,8 @@ def __init__(self, **kwargs):
self._sort_by = None
self._sort_order = None
self._format = None
+ self._freeform_tags = None
+ self._defined_tags = None
@property
def compartment_id(self):
@@ -187,7 +201,7 @@ def time_end(self, time_end):
def sort_by(self):
"""
Gets the sort_by of this CreateJavaDownloadReportDetails.
- The property to be used for sorting the reports.
+ The property to be used for sorting the records.
Allowed values for this property are: "timeDownloaded", "downloadSourceId", "downloadType"
@@ -201,7 +215,7 @@ def sort_by(self):
def sort_by(self, sort_by):
"""
Sets the sort_by of this CreateJavaDownloadReportDetails.
- The property to be used for sorting the reports.
+ The property to be used for sorting the records.
:param sort_by: The sort_by of this CreateJavaDownloadReportDetails.
@@ -218,7 +232,7 @@ def sort_by(self, sort_by):
def sort_order(self):
"""
Gets the sort_order of this CreateJavaDownloadReportDetails.
- The sort order for the reports.
+ The sort order for the records.
Allowed values for this property are: "ASC", "DESC"
@@ -232,7 +246,7 @@ def sort_order(self):
def sort_order(self, sort_order):
"""
Sets the sort_order of this CreateJavaDownloadReportDetails.
- The sort order for the reports.
+ The sort order for the records.
:param sort_order: The sort_order of this CreateJavaDownloadReportDetails.
@@ -276,6 +290,66 @@ def format(self, format):
)
self._format = format
+ @property
+ def freeform_tags(self):
+ """
+ Gets the freeform_tags of this CreateJavaDownloadReportDetails.
+ Simple key-value pair that is applied without any predefined name, type, or scope. Exists for cross-compatibility only.
+ Example: `{\"bar-key\": \"value\"}`. (See `Managing Tags and Tag Namespaces`__.)
+
+ __ https://docs.cloud.oracle.com/Content/Tagging/Concepts/understandingfreeformtags.htm
+
+
+ :return: The freeform_tags of this CreateJavaDownloadReportDetails.
+ :rtype: dict(str, str)
+ """
+ return self._freeform_tags
+
+ @freeform_tags.setter
+ def freeform_tags(self, freeform_tags):
+ """
+ Sets the freeform_tags of this CreateJavaDownloadReportDetails.
+ Simple key-value pair that is applied without any predefined name, type, or scope. Exists for cross-compatibility only.
+ Example: `{\"bar-key\": \"value\"}`. (See `Managing Tags and Tag Namespaces`__.)
+
+ __ https://docs.cloud.oracle.com/Content/Tagging/Concepts/understandingfreeformtags.htm
+
+
+ :param freeform_tags: The freeform_tags of this CreateJavaDownloadReportDetails.
+ :type: dict(str, str)
+ """
+ self._freeform_tags = freeform_tags
+
+ @property
+ def defined_tags(self):
+ """
+ Gets the defined_tags of this CreateJavaDownloadReportDetails.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ Example: `{\"foo-namespace\": {\"bar-key\": \"value\"}}`. (See `Understanding Free-form Tags`__).
+
+ __ https://docs.cloud.oracle.com/Content/Tagging/Tasks/managingtagsandtagnamespaces.htm
+
+
+ :return: The defined_tags of this CreateJavaDownloadReportDetails.
+ :rtype: dict(str, dict(str, object))
+ """
+ return self._defined_tags
+
+ @defined_tags.setter
+ def defined_tags(self, defined_tags):
+ """
+ Sets the defined_tags of this CreateJavaDownloadReportDetails.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ Example: `{\"foo-namespace\": {\"bar-key\": \"value\"}}`. (See `Understanding Free-form Tags`__).
+
+ __ https://docs.cloud.oracle.com/Content/Tagging/Tasks/managingtagsandtagnamespaces.htm
+
+
+ :param defined_tags: The defined_tags of this CreateJavaDownloadReportDetails.
+ :type: dict(str, dict(str, object))
+ """
+ self._defined_tags = defined_tags
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/jms_java_downloads/models/create_java_license_acceptance_record_details.py b/src/oci/jms_java_downloads/models/create_java_license_acceptance_record_details.py
index 266f48b0b..61d15d7db 100644
--- a/src/oci/jms_java_downloads/models/create_java_license_acceptance_record_details.py
+++ b/src/oci/jms_java_downloads/models/create_java_license_acceptance_record_details.py
@@ -54,22 +54,36 @@ def __init__(self, **kwargs):
Allowed values for this property are: "ACCEPTED", "REVOKED"
:type license_acceptance_status: str
+ :param freeform_tags:
+ The value to assign to the freeform_tags property of this CreateJavaLicenseAcceptanceRecordDetails.
+ :type freeform_tags: dict(str, str)
+
+ :param defined_tags:
+ The value to assign to the defined_tags property of this CreateJavaLicenseAcceptanceRecordDetails.
+ :type defined_tags: dict(str, dict(str, object))
+
"""
self.swagger_types = {
'compartment_id': 'str',
'license_type': 'str',
- 'license_acceptance_status': 'str'
+ 'license_acceptance_status': 'str',
+ 'freeform_tags': 'dict(str, str)',
+ 'defined_tags': 'dict(str, dict(str, object))'
}
self.attribute_map = {
'compartment_id': 'compartmentId',
'license_type': 'licenseType',
- 'license_acceptance_status': 'licenseAcceptanceStatus'
+ 'license_acceptance_status': 'licenseAcceptanceStatus',
+ 'freeform_tags': 'freeformTags',
+ 'defined_tags': 'definedTags'
}
self._compartment_id = None
self._license_type = None
self._license_acceptance_status = None
+ self._freeform_tags = None
+ self._defined_tags = None
@property
def compartment_id(self):
@@ -161,6 +175,66 @@ def license_acceptance_status(self, license_acceptance_status):
)
self._license_acceptance_status = license_acceptance_status
+ @property
+ def freeform_tags(self):
+ """
+ Gets the freeform_tags of this CreateJavaLicenseAcceptanceRecordDetails.
+ Simple key-value pair that is applied without any predefined name, type, or scope. Exists for cross-compatibility only.
+ Example: `{\"bar-key\": \"value\"}`. (See `Managing Tags and Tag Namespaces`__.)
+
+ __ https://docs.cloud.oracle.com/Content/Tagging/Concepts/understandingfreeformtags.htm
+
+
+ :return: The freeform_tags of this CreateJavaLicenseAcceptanceRecordDetails.
+ :rtype: dict(str, str)
+ """
+ return self._freeform_tags
+
+ @freeform_tags.setter
+ def freeform_tags(self, freeform_tags):
+ """
+ Sets the freeform_tags of this CreateJavaLicenseAcceptanceRecordDetails.
+ Simple key-value pair that is applied without any predefined name, type, or scope. Exists for cross-compatibility only.
+ Example: `{\"bar-key\": \"value\"}`. (See `Managing Tags and Tag Namespaces`__.)
+
+ __ https://docs.cloud.oracle.com/Content/Tagging/Concepts/understandingfreeformtags.htm
+
+
+ :param freeform_tags: The freeform_tags of this CreateJavaLicenseAcceptanceRecordDetails.
+ :type: dict(str, str)
+ """
+ self._freeform_tags = freeform_tags
+
+ @property
+ def defined_tags(self):
+ """
+ Gets the defined_tags of this CreateJavaLicenseAcceptanceRecordDetails.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ Example: `{\"foo-namespace\": {\"bar-key\": \"value\"}}`. (See `Understanding Free-form Tags`__).
+
+ __ https://docs.cloud.oracle.com/Content/Tagging/Tasks/managingtagsandtagnamespaces.htm
+
+
+ :return: The defined_tags of this CreateJavaLicenseAcceptanceRecordDetails.
+ :rtype: dict(str, dict(str, object))
+ """
+ return self._defined_tags
+
+ @defined_tags.setter
+ def defined_tags(self, defined_tags):
+ """
+ Sets the defined_tags of this CreateJavaLicenseAcceptanceRecordDetails.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ Example: `{\"foo-namespace\": {\"bar-key\": \"value\"}}`. (See `Understanding Free-form Tags`__).
+
+ __ https://docs.cloud.oracle.com/Content/Tagging/Tasks/managingtagsandtagnamespaces.htm
+
+
+ :param defined_tags: The defined_tags of this CreateJavaLicenseAcceptanceRecordDetails.
+ :type: dict(str, dict(str, object))
+ """
+ self._defined_tags = defined_tags
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/jms_java_downloads/models/java_download_count_aggregation.py b/src/oci/jms_java_downloads/models/java_download_count_aggregation.py
index 8e9e97aed..420dd916b 100644
--- a/src/oci/jms_java_downloads/models/java_download_count_aggregation.py
+++ b/src/oci/jms_java_downloads/models/java_download_count_aggregation.py
@@ -232,7 +232,7 @@ def architecture(self, architecture):
def package_type(self):
"""
Gets the package_type of this JavaDownloadCountAggregation.
- The package type(typically the file extension) of the artifact. Applicable only to `PLATFORM` aggregationType.
+ The package type (typically the file extension) of the artifact. Applicable only to `PLATFORM` aggregationType.
:return: The package_type of this JavaDownloadCountAggregation.
@@ -244,7 +244,7 @@ def package_type(self):
def package_type(self, package_type):
"""
Sets the package_type of this JavaDownloadCountAggregation.
- The package type(typically the file extension) of the artifact. Applicable only to `PLATFORM` aggregationType.
+ The package type (typically the file extension) of the artifact. Applicable only to `PLATFORM` aggregationType.
:param package_type: The package_type of this JavaDownloadCountAggregation.
diff --git a/src/oci/jms_java_downloads/models/java_download_record.py b/src/oci/jms_java_downloads/models/java_download_record.py
index 2d80e3e1f..dc5563fbb 100644
--- a/src/oci/jms_java_downloads/models/java_download_record.py
+++ b/src/oci/jms_java_downloads/models/java_download_record.py
@@ -222,7 +222,7 @@ def architecture(self, architecture):
def package_type(self):
"""
Gets the package_type of this JavaDownloadRecord.
- The package type(typically the file extension) of the artifact.
+ The package type (typically the file extension) of the artifact.
:return: The package_type of this JavaDownloadRecord.
@@ -234,7 +234,7 @@ def package_type(self):
def package_type(self, package_type):
"""
Sets the package_type of this JavaDownloadRecord.
- The package type(typically the file extension) of the artifact.
+ The package type (typically the file extension) of the artifact.
:param package_type: The package_type of this JavaDownloadRecord.
diff --git a/src/oci/jms_java_downloads/models/java_download_record_summary.py b/src/oci/jms_java_downloads/models/java_download_record_summary.py
index 73e96c651..908cf8838 100644
--- a/src/oci/jms_java_downloads/models/java_download_record_summary.py
+++ b/src/oci/jms_java_downloads/models/java_download_record_summary.py
@@ -222,7 +222,7 @@ def architecture(self, architecture):
def package_type(self):
"""
Gets the package_type of this JavaDownloadRecordSummary.
- The package type(typically the file extension) of the artifact.
+ The package type (typically the file extension) of the artifact.
:return: The package_type of this JavaDownloadRecordSummary.
@@ -234,7 +234,7 @@ def package_type(self):
def package_type(self, package_type):
"""
Sets the package_type of this JavaDownloadRecordSummary.
- The package type(typically the file extension) of the artifact.
+ The package type (typically the file extension) of the artifact.
:param package_type: The package_type of this JavaDownloadRecordSummary.
diff --git a/src/oci/jms_java_downloads/models/java_download_report.py b/src/oci/jms_java_downloads/models/java_download_report.py
index d0b05b472..e89769a36 100644
--- a/src/oci/jms_java_downloads/models/java_download_report.py
+++ b/src/oci/jms_java_downloads/models/java_download_report.py
@@ -24,6 +24,26 @@ class JavaDownloadReport(object):
#: This constant has a value of "SHA256"
CHECKSUM_TYPE_SHA256 = "SHA256"
+ #: A constant which can be used with the sort_by property of a JavaDownloadReport.
+ #: This constant has a value of "timeDownloaded"
+ SORT_BY_TIME_DOWNLOADED = "timeDownloaded"
+
+ #: A constant which can be used with the sort_by property of a JavaDownloadReport.
+ #: This constant has a value of "downloadSourceId"
+ SORT_BY_DOWNLOAD_SOURCE_ID = "downloadSourceId"
+
+ #: A constant which can be used with the sort_by property of a JavaDownloadReport.
+ #: This constant has a value of "downloadType"
+ SORT_BY_DOWNLOAD_TYPE = "downloadType"
+
+ #: A constant which can be used with the sort_order property of a JavaDownloadReport.
+ #: This constant has a value of "ASC"
+ SORT_ORDER_ASC = "ASC"
+
+ #: A constant which can be used with the sort_order property of a JavaDownloadReport.
+ #: This constant has a value of "DESC"
+ SORT_ORDER_DESC = "DESC"
+
#: A constant which can be used with the lifecycle_state property of a JavaDownloadReport.
#: This constant has a value of "ACTIVE"
LIFECYCLE_STATE_ACTIVE = "ACTIVE"
@@ -97,6 +117,26 @@ def __init__(self, **kwargs):
The value to assign to the time_created property of this JavaDownloadReport.
:type time_created: datetime
+ :param time_start:
+ The value to assign to the time_start property of this JavaDownloadReport.
+ :type time_start: datetime
+
+ :param time_end:
+ The value to assign to the time_end property of this JavaDownloadReport.
+ :type time_end: datetime
+
+ :param sort_by:
+ The value to assign to the sort_by property of this JavaDownloadReport.
+ Allowed values for this property are: "timeDownloaded", "downloadSourceId", "downloadType", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type sort_by: str
+
+ :param sort_order:
+ The value to assign to the sort_order property of this JavaDownloadReport.
+ Allowed values for this property are: "ASC", "DESC", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type sort_order: str
+
:param lifecycle_state:
The value to assign to the lifecycle_state property of this JavaDownloadReport.
Allowed values for this property are: "ACTIVE", "CREATING", "DELETED", "DELETING", "FAILED", "NEEDS_ATTENTION", "UPDATING", 'UNKNOWN_ENUM_VALUE'.
@@ -126,6 +166,10 @@ def __init__(self, **kwargs):
'compartment_id': 'str',
'created_by': 'Principal',
'time_created': 'datetime',
+ 'time_start': 'datetime',
+ 'time_end': 'datetime',
+ 'sort_by': 'str',
+ 'sort_order': 'str',
'lifecycle_state': 'str',
'freeform_tags': 'dict(str, str)',
'defined_tags': 'dict(str, dict(str, object))',
@@ -142,6 +186,10 @@ def __init__(self, **kwargs):
'compartment_id': 'compartmentId',
'created_by': 'createdBy',
'time_created': 'timeCreated',
+ 'time_start': 'timeStart',
+ 'time_end': 'timeEnd',
+ 'sort_by': 'sortBy',
+ 'sort_order': 'sortOrder',
'lifecycle_state': 'lifecycleState',
'freeform_tags': 'freeformTags',
'defined_tags': 'definedTags',
@@ -157,6 +205,10 @@ def __init__(self, **kwargs):
self._compartment_id = None
self._created_by = None
self._time_created = None
+ self._time_start = None
+ self._time_end = None
+ self._sort_by = None
+ self._sort_order = None
self._lifecycle_state = None
self._freeform_tags = None
self._defined_tags = None
@@ -374,7 +426,9 @@ def created_by(self, created_by):
def time_created(self):
"""
**[Required]** Gets the time_created of this JavaDownloadReport.
- The time the Java download report was created. An RFC3339 formatted datetime string.
+ The time the Java download report was created, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:return: The time_created of this JavaDownloadReport.
@@ -386,7 +440,9 @@ def time_created(self):
def time_created(self, time_created):
"""
Sets the time_created of this JavaDownloadReport.
- The time the Java download report was created. An RFC3339 formatted datetime string.
+ The time the Java download report was created, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:param time_created: The time_created of this JavaDownloadReport.
@@ -394,6 +450,122 @@ def time_created(self, time_created):
"""
self._time_created = time_created
+ @property
+ def time_start(self):
+ """
+ Gets the time_start of this JavaDownloadReport.
+ The start time from when the download records are included (formatted according to `RFC3339`__).
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
+
+
+ :return: The time_start of this JavaDownloadReport.
+ :rtype: datetime
+ """
+ return self._time_start
+
+ @time_start.setter
+ def time_start(self, time_start):
+ """
+ Sets the time_start of this JavaDownloadReport.
+ The start time from when the download records are included (formatted according to `RFC3339`__).
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
+
+
+ :param time_start: The time_start of this JavaDownloadReport.
+ :type: datetime
+ """
+ self._time_start = time_start
+
+ @property
+ def time_end(self):
+ """
+ Gets the time_end of this JavaDownloadReport.
+ The end time until when the download records are included (formatted according to `RFC3339`__).
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
+
+
+ :return: The time_end of this JavaDownloadReport.
+ :rtype: datetime
+ """
+ return self._time_end
+
+ @time_end.setter
+ def time_end(self, time_end):
+ """
+ Sets the time_end of this JavaDownloadReport.
+ The end time until when the download records are included (formatted according to `RFC3339`__).
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
+
+
+ :param time_end: The time_end of this JavaDownloadReport.
+ :type: datetime
+ """
+ self._time_end = time_end
+
+ @property
+ def sort_by(self):
+ """
+ Gets the sort_by of this JavaDownloadReport.
+ The property used for sorting the records.
+
+ Allowed values for this property are: "timeDownloaded", "downloadSourceId", "downloadType", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The sort_by of this JavaDownloadReport.
+ :rtype: str
+ """
+ return self._sort_by
+
+ @sort_by.setter
+ def sort_by(self, sort_by):
+ """
+ Sets the sort_by of this JavaDownloadReport.
+ The property used for sorting the records.
+
+
+ :param sort_by: The sort_by of this JavaDownloadReport.
+ :type: str
+ """
+ allowed_values = ["timeDownloaded", "downloadSourceId", "downloadType"]
+ if not value_allowed_none_or_none_sentinel(sort_by, allowed_values):
+ sort_by = 'UNKNOWN_ENUM_VALUE'
+ self._sort_by = sort_by
+
+ @property
+ def sort_order(self):
+ """
+ Gets the sort_order of this JavaDownloadReport.
+ The sort order for the records.
+
+ Allowed values for this property are: "ASC", "DESC", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The sort_order of this JavaDownloadReport.
+ :rtype: str
+ """
+ return self._sort_order
+
+ @sort_order.setter
+ def sort_order(self, sort_order):
+ """
+ Sets the sort_order of this JavaDownloadReport.
+ The sort order for the records.
+
+
+ :param sort_order: The sort_order of this JavaDownloadReport.
+ :type: str
+ """
+ allowed_values = ["ASC", "DESC"]
+ if not value_allowed_none_or_none_sentinel(sort_order, allowed_values):
+ sort_order = 'UNKNOWN_ENUM_VALUE'
+ self._sort_order = sort_order
+
@property
def lifecycle_state(self):
"""
diff --git a/src/oci/jms_java_downloads/models/java_download_report_summary.py b/src/oci/jms_java_downloads/models/java_download_report_summary.py
index a3c3b6573..8dd32c44e 100644
--- a/src/oci/jms_java_downloads/models/java_download_report_summary.py
+++ b/src/oci/jms_java_downloads/models/java_download_report_summary.py
@@ -23,6 +23,26 @@ class JavaDownloadReportSummary(object):
#: This constant has a value of "SHA256"
CHECKSUM_TYPE_SHA256 = "SHA256"
+ #: A constant which can be used with the sort_by property of a JavaDownloadReportSummary.
+ #: This constant has a value of "timeDownloaded"
+ SORT_BY_TIME_DOWNLOADED = "timeDownloaded"
+
+ #: A constant which can be used with the sort_by property of a JavaDownloadReportSummary.
+ #: This constant has a value of "downloadSourceId"
+ SORT_BY_DOWNLOAD_SOURCE_ID = "downloadSourceId"
+
+ #: A constant which can be used with the sort_by property of a JavaDownloadReportSummary.
+ #: This constant has a value of "downloadType"
+ SORT_BY_DOWNLOAD_TYPE = "downloadType"
+
+ #: A constant which can be used with the sort_order property of a JavaDownloadReportSummary.
+ #: This constant has a value of "ASC"
+ SORT_ORDER_ASC = "ASC"
+
+ #: A constant which can be used with the sort_order property of a JavaDownloadReportSummary.
+ #: This constant has a value of "DESC"
+ SORT_ORDER_DESC = "DESC"
+
#: A constant which can be used with the lifecycle_state property of a JavaDownloadReportSummary.
#: This constant has a value of "ACTIVE"
LIFECYCLE_STATE_ACTIVE = "ACTIVE"
@@ -96,6 +116,26 @@ def __init__(self, **kwargs):
The value to assign to the time_created property of this JavaDownloadReportSummary.
:type time_created: datetime
+ :param time_start:
+ The value to assign to the time_start property of this JavaDownloadReportSummary.
+ :type time_start: datetime
+
+ :param time_end:
+ The value to assign to the time_end property of this JavaDownloadReportSummary.
+ :type time_end: datetime
+
+ :param sort_by:
+ The value to assign to the sort_by property of this JavaDownloadReportSummary.
+ Allowed values for this property are: "timeDownloaded", "downloadSourceId", "downloadType", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type sort_by: str
+
+ :param sort_order:
+ The value to assign to the sort_order property of this JavaDownloadReportSummary.
+ Allowed values for this property are: "ASC", "DESC", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type sort_order: str
+
:param lifecycle_state:
The value to assign to the lifecycle_state property of this JavaDownloadReportSummary.
Allowed values for this property are: "ACTIVE", "CREATING", "DELETED", "DELETING", "FAILED", "NEEDS_ATTENTION", "UPDATING", 'UNKNOWN_ENUM_VALUE'.
@@ -125,6 +165,10 @@ def __init__(self, **kwargs):
'compartment_id': 'str',
'created_by': 'Principal',
'time_created': 'datetime',
+ 'time_start': 'datetime',
+ 'time_end': 'datetime',
+ 'sort_by': 'str',
+ 'sort_order': 'str',
'lifecycle_state': 'str',
'freeform_tags': 'dict(str, str)',
'defined_tags': 'dict(str, dict(str, object))',
@@ -141,6 +185,10 @@ def __init__(self, **kwargs):
'compartment_id': 'compartmentId',
'created_by': 'createdBy',
'time_created': 'timeCreated',
+ 'time_start': 'timeStart',
+ 'time_end': 'timeEnd',
+ 'sort_by': 'sortBy',
+ 'sort_order': 'sortOrder',
'lifecycle_state': 'lifecycleState',
'freeform_tags': 'freeformTags',
'defined_tags': 'definedTags',
@@ -156,6 +204,10 @@ def __init__(self, **kwargs):
self._compartment_id = None
self._created_by = None
self._time_created = None
+ self._time_start = None
+ self._time_end = None
+ self._sort_by = None
+ self._sort_order = None
self._lifecycle_state = None
self._freeform_tags = None
self._defined_tags = None
@@ -373,7 +425,9 @@ def created_by(self, created_by):
def time_created(self):
"""
**[Required]** Gets the time_created of this JavaDownloadReportSummary.
- The time the Java download report was created. An RFC3339 formatted datetime string.
+ The time the Java download report was created, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:return: The time_created of this JavaDownloadReportSummary.
@@ -385,7 +439,9 @@ def time_created(self):
def time_created(self, time_created):
"""
Sets the time_created of this JavaDownloadReportSummary.
- The time the Java download report was created. An RFC3339 formatted datetime string.
+ The time the Java download report was created, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:param time_created: The time_created of this JavaDownloadReportSummary.
@@ -393,6 +449,122 @@ def time_created(self, time_created):
"""
self._time_created = time_created
+ @property
+ def time_start(self):
+ """
+ Gets the time_start of this JavaDownloadReportSummary.
+ The start time from when the download records are included (formatted according to `RFC3339`__).
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
+
+
+ :return: The time_start of this JavaDownloadReportSummary.
+ :rtype: datetime
+ """
+ return self._time_start
+
+ @time_start.setter
+ def time_start(self, time_start):
+ """
+ Sets the time_start of this JavaDownloadReportSummary.
+ The start time from when the download records are included (formatted according to `RFC3339`__).
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
+
+
+ :param time_start: The time_start of this JavaDownloadReportSummary.
+ :type: datetime
+ """
+ self._time_start = time_start
+
+ @property
+ def time_end(self):
+ """
+ Gets the time_end of this JavaDownloadReportSummary.
+ The end time until when the download records are included (formatted according to `RFC3339`__).
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
+
+
+ :return: The time_end of this JavaDownloadReportSummary.
+ :rtype: datetime
+ """
+ return self._time_end
+
+ @time_end.setter
+ def time_end(self, time_end):
+ """
+ Sets the time_end of this JavaDownloadReportSummary.
+ The end time until when the download records are included (formatted according to `RFC3339`__).
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
+
+
+ :param time_end: The time_end of this JavaDownloadReportSummary.
+ :type: datetime
+ """
+ self._time_end = time_end
+
+ @property
+ def sort_by(self):
+ """
+ Gets the sort_by of this JavaDownloadReportSummary.
+ The property used for sorting the records.
+
+ Allowed values for this property are: "timeDownloaded", "downloadSourceId", "downloadType", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The sort_by of this JavaDownloadReportSummary.
+ :rtype: str
+ """
+ return self._sort_by
+
+ @sort_by.setter
+ def sort_by(self, sort_by):
+ """
+ Sets the sort_by of this JavaDownloadReportSummary.
+ The property used for sorting the records.
+
+
+ :param sort_by: The sort_by of this JavaDownloadReportSummary.
+ :type: str
+ """
+ allowed_values = ["timeDownloaded", "downloadSourceId", "downloadType"]
+ if not value_allowed_none_or_none_sentinel(sort_by, allowed_values):
+ sort_by = 'UNKNOWN_ENUM_VALUE'
+ self._sort_by = sort_by
+
+ @property
+ def sort_order(self):
+ """
+ Gets the sort_order of this JavaDownloadReportSummary.
+ The sort order for the records.
+
+ Allowed values for this property are: "ASC", "DESC", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The sort_order of this JavaDownloadReportSummary.
+ :rtype: str
+ """
+ return self._sort_order
+
+ @sort_order.setter
+ def sort_order(self, sort_order):
+ """
+ Sets the sort_order of this JavaDownloadReportSummary.
+ The sort order for the records.
+
+
+ :param sort_order: The sort_order of this JavaDownloadReportSummary.
+ :type: str
+ """
+ allowed_values = ["ASC", "DESC"]
+ if not value_allowed_none_or_none_sentinel(sort_order, allowed_values):
+ sort_order = 'UNKNOWN_ENUM_VALUE'
+ self._sort_order = sort_order
+
@property
def lifecycle_state(self):
"""
diff --git a/src/oci/jms_java_downloads/models/java_download_token.py b/src/oci/jms_java_downloads/models/java_download_token.py
index f34c0aa24..d31c03d12 100644
--- a/src/oci/jms_java_downloads/models/java_download_token.py
+++ b/src/oci/jms_java_downloads/models/java_download_token.py
@@ -377,7 +377,9 @@ def value(self, value):
def time_created(self):
"""
**[Required]** Gets the time_created of this JavaDownloadToken.
- The time the JavaDownloadToken was created. An RFC3339 formatted datetime string.
+ The time the JavaDownloadToken was created, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:return: The time_created of this JavaDownloadToken.
@@ -389,7 +391,9 @@ def time_created(self):
def time_created(self, time_created):
"""
Sets the time_created of this JavaDownloadToken.
- The time the JavaDownloadToken was created. An RFC3339 formatted datetime string.
+ The time the JavaDownloadToken was created, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:param time_created: The time_created of this JavaDownloadToken.
@@ -401,7 +405,9 @@ def time_created(self, time_created):
def time_updated(self):
"""
Gets the time_updated of this JavaDownloadToken.
- The time the JavaDownloadToken was updated. An RFC3339 formatted datetime string.
+ The time the JavaDownloadToken was updated, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:return: The time_updated of this JavaDownloadToken.
@@ -413,7 +419,9 @@ def time_updated(self):
def time_updated(self, time_updated):
"""
Sets the time_updated of this JavaDownloadToken.
- The time the JavaDownloadToken was updated. An RFC3339 formatted datetime string.
+ The time the JavaDownloadToken was updated, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:param time_updated: The time_updated of this JavaDownloadToken.
@@ -425,7 +433,9 @@ def time_updated(self, time_updated):
def time_last_used(self):
"""
Gets the time_last_used of this JavaDownloadToken.
- The time the JavaDownloadToken was last used for download. An RFC3339 formatted datetime string.
+ The time the JavaDownloadToken was last used for download, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:return: The time_last_used of this JavaDownloadToken.
@@ -437,7 +447,9 @@ def time_last_used(self):
def time_last_used(self, time_last_used):
"""
Sets the time_last_used of this JavaDownloadToken.
- The time the JavaDownloadToken was last used for download. An RFC3339 formatted datetime string.
+ The time the JavaDownloadToken was last used for download, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:param time_last_used: The time_last_used of this JavaDownloadToken.
@@ -449,7 +461,9 @@ def time_last_used(self, time_last_used):
def time_expires(self):
"""
**[Required]** Gets the time_expires of this JavaDownloadToken.
- The expiry time of the JavaDownloadToken. An RFC3339 formatted datetime string.
+ The expiry time of the JavaDownloadToken, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:return: The time_expires of this JavaDownloadToken.
@@ -461,7 +475,9 @@ def time_expires(self):
def time_expires(self, time_expires):
"""
Sets the time_expires of this JavaDownloadToken.
- The expiry time of the JavaDownloadToken. An RFC3339 formatted datetime string.
+ The expiry time of the JavaDownloadToken, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:param time_expires: The time_expires of this JavaDownloadToken.
diff --git a/src/oci/jms_java_downloads/models/java_download_token_summary.py b/src/oci/jms_java_downloads/models/java_download_token_summary.py
index 5df1d3831..b6ce6a811 100644
--- a/src/oci/jms_java_downloads/models/java_download_token_summary.py
+++ b/src/oci/jms_java_downloads/models/java_download_token_summary.py
@@ -377,7 +377,9 @@ def value(self, value):
def time_created(self):
"""
**[Required]** Gets the time_created of this JavaDownloadTokenSummary.
- The time the JavaDownloadToken was created. An RFC3339 formatted datetime string.
+ The time the JavaDownloadToken was created, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:return: The time_created of this JavaDownloadTokenSummary.
@@ -389,7 +391,9 @@ def time_created(self):
def time_created(self, time_created):
"""
Sets the time_created of this JavaDownloadTokenSummary.
- The time the JavaDownloadToken was created. An RFC3339 formatted datetime string.
+ The time the JavaDownloadToken was created, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:param time_created: The time_created of this JavaDownloadTokenSummary.
@@ -401,7 +405,9 @@ def time_created(self, time_created):
def time_updated(self):
"""
Gets the time_updated of this JavaDownloadTokenSummary.
- The time the JavaDownloadToken was updated. An RFC3339 formatted datetime string.
+ The time the JavaDownloadToken was updated, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:return: The time_updated of this JavaDownloadTokenSummary.
@@ -413,7 +419,9 @@ def time_updated(self):
def time_updated(self, time_updated):
"""
Sets the time_updated of this JavaDownloadTokenSummary.
- The time the JavaDownloadToken was updated. An RFC3339 formatted datetime string.
+ The time the JavaDownloadToken was updated, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:param time_updated: The time_updated of this JavaDownloadTokenSummary.
@@ -425,7 +433,9 @@ def time_updated(self, time_updated):
def time_last_used(self):
"""
Gets the time_last_used of this JavaDownloadTokenSummary.
- The time the JavaDownloadToken was last used for download. An RFC3339 formatted datetime string.
+ The time the JavaDownloadToken was last used for download, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:return: The time_last_used of this JavaDownloadTokenSummary.
@@ -437,7 +447,9 @@ def time_last_used(self):
def time_last_used(self, time_last_used):
"""
Sets the time_last_used of this JavaDownloadTokenSummary.
- The time the JavaDownloadToken was last used for download. An RFC3339 formatted datetime string.
+ The time the JavaDownloadToken was last used for download, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:param time_last_used: The time_last_used of this JavaDownloadTokenSummary.
@@ -449,7 +461,9 @@ def time_last_used(self, time_last_used):
def time_expires(self):
"""
**[Required]** Gets the time_expires of this JavaDownloadTokenSummary.
- The expiry time of the JavaDownloadToken. An RFC3339 formatted datetime string.
+ The expiry time of the JavaDownloadToken, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:return: The time_expires of this JavaDownloadTokenSummary.
@@ -461,7 +475,9 @@ def time_expires(self):
def time_expires(self, time_expires):
"""
Sets the time_expires of this JavaDownloadTokenSummary.
- The expiry time of the JavaDownloadToken. An RFC3339 formatted datetime string.
+ The expiry time of the JavaDownloadToken, displayed as an `RFC3339`__ formatted datetime string.
+
+ __ https://datatracker.ietf.org/doc/html/rfc3339
:param time_expires: The time_expires of this JavaDownloadTokenSummary.
diff --git a/src/oci/jms_java_downloads/models/java_license_acceptance_record.py b/src/oci/jms_java_downloads/models/java_license_acceptance_record.py
index ee39ecf4e..534879c65 100644
--- a/src/oci/jms_java_downloads/models/java_license_acceptance_record.py
+++ b/src/oci/jms_java_downloads/models/java_license_acceptance_record.py
@@ -322,7 +322,7 @@ def last_updated_by(self, last_updated_by):
def time_accepted(self):
"""
**[Required]** Gets the time_accepted of this JavaLicenseAcceptanceRecord.
- The date and time of license acceptance(formatted according to `RFC3339`__).
+ The date and time of license acceptance (formatted according to `RFC3339`__).
__ https://datatracker.ietf.org/doc/html/rfc3339
@@ -336,7 +336,7 @@ def time_accepted(self):
def time_accepted(self, time_accepted):
"""
Sets the time_accepted of this JavaLicenseAcceptanceRecord.
- The date and time of license acceptance(formatted according to `RFC3339`__).
+ The date and time of license acceptance (formatted according to `RFC3339`__).
__ https://datatracker.ietf.org/doc/html/rfc3339
@@ -350,7 +350,7 @@ def time_accepted(self, time_accepted):
def time_last_updated(self):
"""
Gets the time_last_updated of this JavaLicenseAcceptanceRecord.
- The date and time of last update(formatted according to `RFC3339`__).
+ The date and time of last update (formatted according to `RFC3339`__).
__ https://datatracker.ietf.org/doc/html/rfc3339
@@ -364,7 +364,7 @@ def time_last_updated(self):
def time_last_updated(self, time_last_updated):
"""
Sets the time_last_updated of this JavaLicenseAcceptanceRecord.
- The date and time of last update(formatted according to `RFC3339`__).
+ The date and time of last update (formatted according to `RFC3339`__).
__ https://datatracker.ietf.org/doc/html/rfc3339
diff --git a/src/oci/jms_java_downloads/models/java_license_acceptance_record_summary.py b/src/oci/jms_java_downloads/models/java_license_acceptance_record_summary.py
index bdcb47414..edad175c0 100644
--- a/src/oci/jms_java_downloads/models/java_license_acceptance_record_summary.py
+++ b/src/oci/jms_java_downloads/models/java_license_acceptance_record_summary.py
@@ -322,7 +322,7 @@ def last_updated_by(self, last_updated_by):
def time_accepted(self):
"""
**[Required]** Gets the time_accepted of this JavaLicenseAcceptanceRecordSummary.
- The date and time of license acceptance(formatted according to `RFC3339`__).
+ The date and time of license acceptance (formatted according to `RFC3339`__).
__ https://datatracker.ietf.org/doc/html/rfc3339
@@ -336,7 +336,7 @@ def time_accepted(self):
def time_accepted(self, time_accepted):
"""
Sets the time_accepted of this JavaLicenseAcceptanceRecordSummary.
- The date and time of license acceptance(formatted according to `RFC3339`__).
+ The date and time of license acceptance (formatted according to `RFC3339`__).
__ https://datatracker.ietf.org/doc/html/rfc3339
@@ -350,7 +350,7 @@ def time_accepted(self, time_accepted):
def time_last_updated(self):
"""
Gets the time_last_updated of this JavaLicenseAcceptanceRecordSummary.
- The date and time of last update(formatted according to `RFC3339`__).
+ The date and time of last update (formatted according to `RFC3339`__).
__ https://datatracker.ietf.org/doc/html/rfc3339
@@ -364,7 +364,7 @@ def time_last_updated(self):
def time_last_updated(self, time_last_updated):
"""
Sets the time_last_updated of this JavaLicenseAcceptanceRecordSummary.
- The date and time of last update(formatted according to `RFC3339`__).
+ The date and time of last update (formatted according to `RFC3339`__).
__ https://datatracker.ietf.org/doc/html/rfc3339
diff --git a/src/oci/jms_java_downloads/models/request_summarized_java_download_counts_details.py b/src/oci/jms_java_downloads/models/request_summarized_java_download_counts_details.py
index 3f50680e7..cbf918dfe 100644
--- a/src/oci/jms_java_downloads/models/request_summarized_java_download_counts_details.py
+++ b/src/oci/jms_java_downloads/models/request_summarized_java_download_counts_details.py
@@ -161,7 +161,7 @@ def compartment_id(self, compartment_id):
def group_as(self):
"""
**[Required]** Gets the group_as of this RequestSummarizedJavaDownloadCountsDetails.
- Group as property specifying the aggregation type for download counts.
+ The property that specifies the aggregation type for the download counts.
Allowed values for this property are: "JAVA_FAMILY", "JAVA_RELEASE", "PLATFORM"
@@ -175,7 +175,7 @@ def group_as(self):
def group_as(self, group_as):
"""
Sets the group_as of this RequestSummarizedJavaDownloadCountsDetails.
- Group as property specifying the aggregation type for download counts.
+ The property that specifies the aggregation type for the download counts.
:param group_as: The group_as of this RequestSummarizedJavaDownloadCountsDetails.
diff --git a/src/oci/jms_java_downloads/models/update_java_license_acceptance_record_details.py b/src/oci/jms_java_downloads/models/update_java_license_acceptance_record_details.py
index 679f09ae7..8b70f678b 100644
--- a/src/oci/jms_java_downloads/models/update_java_license_acceptance_record_details.py
+++ b/src/oci/jms_java_downloads/models/update_java_license_acceptance_record_details.py
@@ -33,16 +33,30 @@ def __init__(self, **kwargs):
Allowed values for this property are: "ACCEPTED", "REVOKED"
:type license_acceptance_status: str
+ :param freeform_tags:
+ The value to assign to the freeform_tags property of this UpdateJavaLicenseAcceptanceRecordDetails.
+ :type freeform_tags: dict(str, str)
+
+ :param defined_tags:
+ The value to assign to the defined_tags property of this UpdateJavaLicenseAcceptanceRecordDetails.
+ :type defined_tags: dict(str, dict(str, object))
+
"""
self.swagger_types = {
- 'license_acceptance_status': 'str'
+ 'license_acceptance_status': 'str',
+ 'freeform_tags': 'dict(str, str)',
+ 'defined_tags': 'dict(str, dict(str, object))'
}
self.attribute_map = {
- 'license_acceptance_status': 'licenseAcceptanceStatus'
+ 'license_acceptance_status': 'licenseAcceptanceStatus',
+ 'freeform_tags': 'freeformTags',
+ 'defined_tags': 'definedTags'
}
self._license_acceptance_status = None
+ self._freeform_tags = None
+ self._defined_tags = None
@property
def license_acceptance_status(self):
@@ -75,6 +89,66 @@ def license_acceptance_status(self, license_acceptance_status):
)
self._license_acceptance_status = license_acceptance_status
+ @property
+ def freeform_tags(self):
+ """
+ Gets the freeform_tags of this UpdateJavaLicenseAcceptanceRecordDetails.
+ Simple key-value pair that is applied without any predefined name, type, or scope. Exists for cross-compatibility only.
+ Example: `{\"bar-key\": \"value\"}`. (See `Managing Tags and Tag Namespaces`__.)
+
+ __ https://docs.cloud.oracle.com/Content/Tagging/Concepts/understandingfreeformtags.htm
+
+
+ :return: The freeform_tags of this UpdateJavaLicenseAcceptanceRecordDetails.
+ :rtype: dict(str, str)
+ """
+ return self._freeform_tags
+
+ @freeform_tags.setter
+ def freeform_tags(self, freeform_tags):
+ """
+ Sets the freeform_tags of this UpdateJavaLicenseAcceptanceRecordDetails.
+ Simple key-value pair that is applied without any predefined name, type, or scope. Exists for cross-compatibility only.
+ Example: `{\"bar-key\": \"value\"}`. (See `Managing Tags and Tag Namespaces`__.)
+
+ __ https://docs.cloud.oracle.com/Content/Tagging/Concepts/understandingfreeformtags.htm
+
+
+ :param freeform_tags: The freeform_tags of this UpdateJavaLicenseAcceptanceRecordDetails.
+ :type: dict(str, str)
+ """
+ self._freeform_tags = freeform_tags
+
+ @property
+ def defined_tags(self):
+ """
+ Gets the defined_tags of this UpdateJavaLicenseAcceptanceRecordDetails.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ Example: `{\"foo-namespace\": {\"bar-key\": \"value\"}}`. (See `Understanding Free-form Tags`__).
+
+ __ https://docs.cloud.oracle.com/Content/Tagging/Tasks/managingtagsandtagnamespaces.htm
+
+
+ :return: The defined_tags of this UpdateJavaLicenseAcceptanceRecordDetails.
+ :rtype: dict(str, dict(str, object))
+ """
+ return self._defined_tags
+
+ @defined_tags.setter
+ def defined_tags(self, defined_tags):
+ """
+ Sets the defined_tags of this UpdateJavaLicenseAcceptanceRecordDetails.
+ Defined tags for this resource. Each key is predefined and scoped to a namespace.
+ Example: `{\"foo-namespace\": {\"bar-key\": \"value\"}}`. (See `Understanding Free-form Tags`__).
+
+ __ https://docs.cloud.oracle.com/Content/Tagging/Tasks/managingtagsandtagnamespaces.htm
+
+
+ :param defined_tags: The defined_tags of this UpdateJavaLicenseAcceptanceRecordDetails.
+ :type: dict(str, dict(str, object))
+ """
+ self._defined_tags = defined_tags
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/resource_scheduler/schedule_client.py b/src/oci/resource_scheduler/schedule_client.py
index b08f9ed70..ff184be0c 100644
--- a/src/oci/resource_scheduler/schedule_client.py
+++ b/src/oci/resource_scheduler/schedule_client.py
@@ -168,7 +168,7 @@ def activate_schedule(self, schedule_id, **kwargs):
resource_path = "/schedules/{scheduleId}/actions/activateSchedule"
method = "POST"
operation_name = "activate_schedule"
- api_reference_link = ""
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/resource-scheduler/20240430/Schedule/ActivateSchedule"
# Don't accept unknown kwargs
expected_kwargs = [
@@ -282,7 +282,7 @@ def cancel_work_request(self, work_request_id, **kwargs):
resource_path = "/workRequests/{workRequestId}"
method = "DELETE"
operation_name = "cancel_work_request"
- api_reference_link = ""
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/resource-scheduler/20240430/WorkRequest/CancelWorkRequest"
# Don't accept unknown kwargs
expected_kwargs = [
@@ -390,7 +390,7 @@ def create_schedule(self, create_schedule_details, **kwargs):
resource_path = "/schedules"
method = "POST"
operation_name = "create_schedule"
- api_reference_link = ""
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/resource-scheduler/20240430/Schedule/CreateSchedule"
# Don't accept unknown kwargs
expected_kwargs = [
@@ -499,7 +499,7 @@ def deactivate_schedule(self, schedule_id, **kwargs):
resource_path = "/schedules/{scheduleId}/actions/deactivateSchedule"
method = "POST"
operation_name = "deactivate_schedule"
- api_reference_link = ""
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/resource-scheduler/20240430/Schedule/DeactivateSchedule"
# Don't accept unknown kwargs
expected_kwargs = [
@@ -613,7 +613,7 @@ def delete_schedule(self, schedule_id, **kwargs):
resource_path = "/schedules/{scheduleId}"
method = "DELETE"
operation_name = "delete_schedule"
- api_reference_link = ""
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/resource-scheduler/20240430/Schedule/DeleteSchedule"
# Don't accept unknown kwargs
expected_kwargs = [
@@ -716,7 +716,7 @@ def get_schedule(self, schedule_id, **kwargs):
resource_path = "/schedules/{scheduleId}"
method = "GET"
operation_name = "get_schedule"
- api_reference_link = ""
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/resource-scheduler/20240430/Schedule/GetSchedule"
# Don't accept unknown kwargs
expected_kwargs = [
@@ -819,7 +819,7 @@ def get_work_request(self, work_request_id, **kwargs):
resource_path = "/workRequests/{workRequestId}"
method = "GET"
operation_name = "get_work_request"
- api_reference_link = ""
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/resource-scheduler/20240430/WorkRequest/GetWorkRequest"
# Don't accept unknown kwargs
expected_kwargs = [
@@ -936,7 +936,7 @@ def list_resource_types(self, **kwargs):
resource_path = "/schedules/resourceTypes"
method = "GET"
operation_name = "list_resource_types"
- api_reference_link = ""
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/resource-scheduler/20240430/ResourceTypeCollection/ListResourceTypes"
# Don't accept unknown kwargs
expected_kwargs = [
@@ -1078,7 +1078,7 @@ def list_schedules(self, **kwargs):
resource_path = "/schedules"
method = "GET"
operation_name = "list_schedules"
- api_reference_link = ""
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/resource-scheduler/20240430/Schedule/ListSchedules"
# Don't accept unknown kwargs
expected_kwargs = [
@@ -1236,7 +1236,7 @@ def list_work_request_errors(self, work_request_id, **kwargs):
resource_path = "/workRequests/{workRequestId}/errors"
method = "GET"
operation_name = "list_work_request_errors"
- api_reference_link = ""
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/resource-scheduler/20240430/WorkRequestError/ListWorkRequestErrors"
# Don't accept unknown kwargs
expected_kwargs = [
@@ -1391,7 +1391,7 @@ def list_work_request_logs(self, work_request_id, **kwargs):
resource_path = "/workRequests/{workRequestId}/logs"
method = "GET"
operation_name = "list_work_request_logs"
- api_reference_link = ""
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/resource-scheduler/20240430/WorkRequestLogEntry/ListWorkRequestLogs"
# Don't accept unknown kwargs
expected_kwargs = [
@@ -1566,7 +1566,7 @@ def list_work_requests(self, **kwargs):
resource_path = "/workRequests"
method = "GET"
operation_name = "list_work_requests"
- api_reference_link = ""
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/resource-scheduler/20240430/WorkRequest/ListWorkRequests"
# Don't accept unknown kwargs
expected_kwargs = [
@@ -1711,7 +1711,7 @@ def update_schedule(self, schedule_id, update_schedule_details, **kwargs):
resource_path = "/schedules/{scheduleId}"
method = "PUT"
operation_name = "update_schedule"
- api_reference_link = ""
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/resource-scheduler/20240430/Schedule/UpdateSchedule"
# Don't accept unknown kwargs
expected_kwargs = [
diff --git a/src/oci/version.py b/src/oci/version.py
index ab11660bf..bad19e1bc 100644
--- a/src/oci/version.py
+++ b/src/oci/version.py
@@ -2,4 +2,4 @@
# Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
-__version__ = "2.126.4"
+__version__ = "2.127.0"