diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 77a8825280..2f1470b087 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -3,6 +3,26 @@ Change Log
All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog `_.
+====================
+2.140.0 - 2024-12-10
+====================
+
+Added
+-----
+* Support for Bring Your Own Key (BYOK) in the Database service
+* Support for refreshing disaster recovery plans in the Disaster Recovery service
+* Support for private access to service instances in the Visual Builder service
+* Support for exadata fleet update and rollback maintenance cycle in the Fleet Application Management service
+* Support for Bring Your Own License (BYOL) for windows virtual machines in the Compute service
+* Support for cascading deletion of applications and runs in the Data Flow service
+* Support for on-demand translation and auto language detection during file translation in the AI Language service
+* Support for alias for endpoints in custom model flow and custom anonymization in the AI Language service
+
+Breaking
+--------
+* Models `IdcsInfoDetails` and `AttachmentDetails` were removed from the Visual Builder service
+* Parameters `idcs_info` and `attachments` were removed from the model `VbInstance` in the Visual Builder service
+
====================
2.139.0 - 2024-11-19
====================
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000000..2ca81027ff
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,38 @@
+# Reporting security vulnerabilities
+
+Oracle values the independent security research community and believes that
+responsible disclosure of security vulnerabilities helps us ensure the security
+and privacy of all our users.
+
+Please do NOT raise a GitHub Issue to report a security vulnerability. If you
+believe you have found a security vulnerability, please submit a report to
+[secalert_us@oracle.com][1] preferably with a proof of concept. Please review
+some additional information on [how to report security vulnerabilities to Oracle][2].
+We encourage people who contact Oracle Security to use email encryption using
+[our encryption key][3].
+
+We ask that you do not use other channels or contact the project maintainers
+directly.
+
+Non-vulnerability related security issues including ideas for new or improved
+security features are welcome on GitHub Issues.
+
+## Security updates, alerts and bulletins
+
+Security updates will be released on a regular cadence. Many of our projects
+will typically release security fixes in conjunction with the
+Oracle Critical Patch Update program. Additional
+information, including past advisories, is available on our [security alerts][4]
+page.
+
+## Security-related information
+
+We will provide security related information such as a threat model, considerations
+for secure use, or any known security issues in our documentation. Please note
+that labs and sample code are intended to demonstrate a concept and may not be
+sufficiently hardened for production use.
+
+[1]: mailto:secalert_us@oracle.com
+[2]: https://www.oracle.com/corporate/security-practices/assurance/vulnerability/reporting.html
+[3]: https://www.oracle.com/security-alerts/encryptionkey.html
+[4]: https://www.oracle.com/security-alerts/
diff --git a/docs/api/ai_language.rst b/docs/api/ai_language.rst
index 5751106daa..69225cd40f 100644
--- a/docs/api/ai_language.rst
+++ b/docs/api/ai_language.rst
@@ -81,6 +81,7 @@ Ai Language
oci.ai_language.models.EvaluationResults
oci.ai_language.models.HealthEntity
oci.ai_language.models.HealthEntityDocumentResult
+ oci.ai_language.models.HealthNluModelDetails
oci.ai_language.models.HierarchicalEntity
oci.ai_language.models.InputConfiguration
oci.ai_language.models.InputLocation
@@ -92,6 +93,7 @@ Ai Language
oci.ai_language.models.LocationDetails
oci.ai_language.models.MelConcept
oci.ai_language.models.MelConceptDetails
+ oci.ai_language.models.MetaInfo
oci.ai_language.models.Model
oci.ai_language.models.ModelCollection
oci.ai_language.models.ModelDetails
@@ -123,6 +125,7 @@ Ai Language
oci.ai_language.models.PreTrainedSentimentAnalysisModelDetails
oci.ai_language.models.PreTrainedSummarization
oci.ai_language.models.PreTrainedTextClassificationModelDetails
+ oci.ai_language.models.PreTrainedTranslationModelDetails
oci.ai_language.models.PreTrainedUniversalModel
oci.ai_language.models.Profile
oci.ai_language.models.Project
diff --git a/docs/api/ai_language/models/oci.ai_language.models.HealthNluModelDetails.rst b/docs/api/ai_language/models/oci.ai_language.models.HealthNluModelDetails.rst
new file mode 100644
index 0000000000..491c5eacb0
--- /dev/null
+++ b/docs/api/ai_language/models/oci.ai_language.models.HealthNluModelDetails.rst
@@ -0,0 +1,11 @@
+HealthNluModelDetails
+=====================
+
+.. currentmodule:: oci.ai_language.models
+
+.. autoclass:: HealthNluModelDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/ai_language/models/oci.ai_language.models.MetaInfo.rst b/docs/api/ai_language/models/oci.ai_language.models.MetaInfo.rst
new file mode 100644
index 0000000000..bc9c2d87aa
--- /dev/null
+++ b/docs/api/ai_language/models/oci.ai_language.models.MetaInfo.rst
@@ -0,0 +1,11 @@
+MetaInfo
+========
+
+.. currentmodule:: oci.ai_language.models
+
+.. autoclass:: MetaInfo
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/ai_language/models/oci.ai_language.models.PreTrainedTranslationModelDetails.rst b/docs/api/ai_language/models/oci.ai_language.models.PreTrainedTranslationModelDetails.rst
new file mode 100644
index 0000000000..d087d17462
--- /dev/null
+++ b/docs/api/ai_language/models/oci.ai_language.models.PreTrainedTranslationModelDetails.rst
@@ -0,0 +1,11 @@
+PreTrainedTranslationModelDetails
+=================================
+
+.. currentmodule:: oci.ai_language.models
+
+.. autoclass:: PreTrainedTranslationModelDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/core.rst b/docs/api/core.rst
index c3b357c1af..e4b5016921 100644
--- a/docs/api/core.rst
+++ b/docs/api/core.rst
@@ -423,10 +423,13 @@ Core Services
oci.core.models.LaunchInstanceAgentConfigDetails
oci.core.models.LaunchInstanceAvailabilityConfigDetails
oci.core.models.LaunchInstanceDetails
+ oci.core.models.LaunchInstanceLicensingConfig
oci.core.models.LaunchInstancePlatformConfig
oci.core.models.LaunchInstanceShapeConfigDetails
+ oci.core.models.LaunchInstanceWindowsLicensingConfig
oci.core.models.LaunchOptions
oci.core.models.LetterOfAuthority
+ oci.core.models.LicensingConfig
oci.core.models.ListIpInventoryDetails
oci.core.models.LocalPeeringGateway
oci.core.models.LoopBackDrgAttachmentNetworkDetails
@@ -550,6 +553,7 @@ Core Services
oci.core.models.UpdateInstanceConfigurationDetails
oci.core.models.UpdateInstanceConsoleConnectionDetails
oci.core.models.UpdateInstanceDetails
+ oci.core.models.UpdateInstanceLicensingConfig
oci.core.models.UpdateInstanceMaintenanceEventDetails
oci.core.models.UpdateInstancePlatformConfig
oci.core.models.UpdateInstancePoolDetails
@@ -558,6 +562,7 @@ Core Services
oci.core.models.UpdateInstanceSourceDetails
oci.core.models.UpdateInstanceSourceViaBootVolumeDetails
oci.core.models.UpdateInstanceSourceViaImageDetails
+ oci.core.models.UpdateInstanceWindowsLicensingConfig
oci.core.models.UpdateInternetGatewayDetails
oci.core.models.UpdateIpv6Details
oci.core.models.UpdateLaunchOptions
diff --git a/docs/api/core/models/oci.core.models.LaunchInstanceLicensingConfig.rst b/docs/api/core/models/oci.core.models.LaunchInstanceLicensingConfig.rst
new file mode 100644
index 0000000000..eeb825f94f
--- /dev/null
+++ b/docs/api/core/models/oci.core.models.LaunchInstanceLicensingConfig.rst
@@ -0,0 +1,11 @@
+LaunchInstanceLicensingConfig
+=============================
+
+.. currentmodule:: oci.core.models
+
+.. autoclass:: LaunchInstanceLicensingConfig
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/core/models/oci.core.models.LaunchInstanceWindowsLicensingConfig.rst b/docs/api/core/models/oci.core.models.LaunchInstanceWindowsLicensingConfig.rst
new file mode 100644
index 0000000000..b5fad3e4f9
--- /dev/null
+++ b/docs/api/core/models/oci.core.models.LaunchInstanceWindowsLicensingConfig.rst
@@ -0,0 +1,11 @@
+LaunchInstanceWindowsLicensingConfig
+====================================
+
+.. currentmodule:: oci.core.models
+
+.. autoclass:: LaunchInstanceWindowsLicensingConfig
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/core/models/oci.core.models.LicensingConfig.rst b/docs/api/core/models/oci.core.models.LicensingConfig.rst
new file mode 100644
index 0000000000..49ac8c9593
--- /dev/null
+++ b/docs/api/core/models/oci.core.models.LicensingConfig.rst
@@ -0,0 +1,11 @@
+LicensingConfig
+===============
+
+.. currentmodule:: oci.core.models
+
+.. autoclass:: LicensingConfig
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/core/models/oci.core.models.UpdateInstanceLicensingConfig.rst b/docs/api/core/models/oci.core.models.UpdateInstanceLicensingConfig.rst
new file mode 100644
index 0000000000..df9b1b84be
--- /dev/null
+++ b/docs/api/core/models/oci.core.models.UpdateInstanceLicensingConfig.rst
@@ -0,0 +1,11 @@
+UpdateInstanceLicensingConfig
+=============================
+
+.. currentmodule:: oci.core.models
+
+.. autoclass:: UpdateInstanceLicensingConfig
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/core/models/oci.core.models.UpdateInstanceWindowsLicensingConfig.rst b/docs/api/core/models/oci.core.models.UpdateInstanceWindowsLicensingConfig.rst
new file mode 100644
index 0000000000..e7c47bf736
--- /dev/null
+++ b/docs/api/core/models/oci.core.models.UpdateInstanceWindowsLicensingConfig.rst
@@ -0,0 +1,11 @@
+UpdateInstanceWindowsLicensingConfig
+====================================
+
+.. currentmodule:: oci.core.models
+
+.. autoclass:: UpdateInstanceWindowsLicensingConfig
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/database.rst b/docs/api/database.rst
index 0249828f4c..c14827d8e0 100644
--- a/docs/api/database.rst
+++ b/docs/api/database.rst
@@ -388,6 +388,8 @@ Database
oci.database.models.ResourcePoolSummary
oci.database.models.RestoreAutonomousDatabaseDetails
oci.database.models.RestoreDatabaseDetails
+ oci.database.models.RotateAutonomousContainerDatabaseEncryptionKeyDetails
+ oci.database.models.RotateAutonomousDatabaseEncryptionKeyDetails
oci.database.models.RotateAutonomousVmClusterOrdsCertsDetails
oci.database.models.RotateAutonomousVmClusterSslCertsDetails
oci.database.models.RotateCloudAutonomousVmClusterOrdsCertsDetails
diff --git a/docs/api/database/models/oci.database.models.RotateAutonomousContainerDatabaseEncryptionKeyDetails.rst b/docs/api/database/models/oci.database.models.RotateAutonomousContainerDatabaseEncryptionKeyDetails.rst
new file mode 100644
index 0000000000..a1ca09d860
--- /dev/null
+++ b/docs/api/database/models/oci.database.models.RotateAutonomousContainerDatabaseEncryptionKeyDetails.rst
@@ -0,0 +1,11 @@
+RotateAutonomousContainerDatabaseEncryptionKeyDetails
+=====================================================
+
+.. currentmodule:: oci.database.models
+
+.. autoclass:: RotateAutonomousContainerDatabaseEncryptionKeyDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/database/models/oci.database.models.RotateAutonomousDatabaseEncryptionKeyDetails.rst b/docs/api/database/models/oci.database.models.RotateAutonomousDatabaseEncryptionKeyDetails.rst
new file mode 100644
index 0000000000..922e314153
--- /dev/null
+++ b/docs/api/database/models/oci.database.models.RotateAutonomousDatabaseEncryptionKeyDetails.rst
@@ -0,0 +1,11 @@
+RotateAutonomousDatabaseEncryptionKeyDetails
+============================================
+
+.. currentmodule:: oci.database.models
+
+.. autoclass:: RotateAutonomousDatabaseEncryptionKeyDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/disaster_recovery.rst b/docs/api/disaster_recovery.rst
index 3665b2021b..b271eaf8fb 100644
--- a/docs/api/disaster_recovery.rst
+++ b/docs/api/disaster_recovery.rst
@@ -104,6 +104,8 @@ Disaster Recovery
oci.disaster_recovery.models.ObjectStorageScriptLocation
oci.disaster_recovery.models.ObjectStoreScriptPrecheckStep
oci.disaster_recovery.models.PauseDrPlanExecutionDetails
+ oci.disaster_recovery.models.RefreshDrPlanDefaultDetails
+ oci.disaster_recovery.models.RefreshDrPlanDetails
oci.disaster_recovery.models.ResumeDrPlanExecutionDetails
oci.disaster_recovery.models.RetryDrPlanExecutionDetails
oci.disaster_recovery.models.RunLocalScriptUserDefinedStep
@@ -154,6 +156,8 @@ Disaster Recovery
oci.disaster_recovery.models.UpdateObjectStoreScriptPrecheckStepDetails
oci.disaster_recovery.models.UpdateRunLocalScriptUserDefinedStepDetails
oci.disaster_recovery.models.UpdateRunObjectStoreScriptUserDefinedStepDetails
+ oci.disaster_recovery.models.VerifyDrPlanDefaultDetails
+ oci.disaster_recovery.models.VerifyDrPlanDetails
oci.disaster_recovery.models.WorkRequest
oci.disaster_recovery.models.WorkRequestError
oci.disaster_recovery.models.WorkRequestErrorCollection
diff --git a/docs/api/disaster_recovery/models/oci.disaster_recovery.models.RefreshDrPlanDefaultDetails.rst b/docs/api/disaster_recovery/models/oci.disaster_recovery.models.RefreshDrPlanDefaultDetails.rst
new file mode 100644
index 0000000000..19cc2dd152
--- /dev/null
+++ b/docs/api/disaster_recovery/models/oci.disaster_recovery.models.RefreshDrPlanDefaultDetails.rst
@@ -0,0 +1,11 @@
+RefreshDrPlanDefaultDetails
+===========================
+
+.. currentmodule:: oci.disaster_recovery.models
+
+.. autoclass:: RefreshDrPlanDefaultDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/disaster_recovery/models/oci.disaster_recovery.models.RefreshDrPlanDetails.rst b/docs/api/disaster_recovery/models/oci.disaster_recovery.models.RefreshDrPlanDetails.rst
new file mode 100644
index 0000000000..89cbd60d2c
--- /dev/null
+++ b/docs/api/disaster_recovery/models/oci.disaster_recovery.models.RefreshDrPlanDetails.rst
@@ -0,0 +1,11 @@
+RefreshDrPlanDetails
+====================
+
+.. currentmodule:: oci.disaster_recovery.models
+
+.. autoclass:: RefreshDrPlanDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/disaster_recovery/models/oci.disaster_recovery.models.VerifyDrPlanDefaultDetails.rst b/docs/api/disaster_recovery/models/oci.disaster_recovery.models.VerifyDrPlanDefaultDetails.rst
new file mode 100644
index 0000000000..b96ac81c7a
--- /dev/null
+++ b/docs/api/disaster_recovery/models/oci.disaster_recovery.models.VerifyDrPlanDefaultDetails.rst
@@ -0,0 +1,11 @@
+VerifyDrPlanDefaultDetails
+==========================
+
+.. currentmodule:: oci.disaster_recovery.models
+
+.. autoclass:: VerifyDrPlanDefaultDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/disaster_recovery/models/oci.disaster_recovery.models.VerifyDrPlanDetails.rst b/docs/api/disaster_recovery/models/oci.disaster_recovery.models.VerifyDrPlanDetails.rst
new file mode 100644
index 0000000000..ff42620848
--- /dev/null
+++ b/docs/api/disaster_recovery/models/oci.disaster_recovery.models.VerifyDrPlanDetails.rst
@@ -0,0 +1,11 @@
+VerifyDrPlanDetails
+===================
+
+.. currentmodule:: oci.disaster_recovery.models
+
+.. autoclass:: VerifyDrPlanDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/fleet_software_update.rst b/docs/api/fleet_software_update.rst
index da7c26a803..45c9a87753 100644
--- a/docs/api/fleet_software_update.rst
+++ b/docs/api/fleet_software_update.rst
@@ -49,6 +49,7 @@ Fleet Software Update
oci.fleet_software_update.models.CreatePatchFsuCycle
oci.fleet_software_update.models.CreatePrecheckActionDetails
oci.fleet_software_update.models.CreateRollbackActionDetails
+ oci.fleet_software_update.models.CreateRollbackCycleApplyActionDetails
oci.fleet_software_update.models.CreateScheduleDetails
oci.fleet_software_update.models.CreateSequentialBatchingStrategyDetails
oci.fleet_software_update.models.CreateServiceAvailabilityFactorBatchingStrategyDetails
@@ -129,6 +130,10 @@ Fleet Software Update
oci.fleet_software_update.models.RemoveFsuCollectionTargetsDetails
oci.fleet_software_update.models.RollbackAction
oci.fleet_software_update.models.RollbackActionSummary
+ oci.fleet_software_update.models.RollbackCycleAction
+ oci.fleet_software_update.models.RollbackCycleActionSummary
+ oci.fleet_software_update.models.RollbackCycleFsuJob
+ oci.fleet_software_update.models.RollbackCycleFsuJobSummary
oci.fleet_software_update.models.RollbackDetails
oci.fleet_software_update.models.RollbackFsuJob
oci.fleet_software_update.models.RollbackFsuJobSummary
@@ -159,6 +164,7 @@ Fleet Software Update
oci.fleet_software_update.models.UpdatePatchFsuCycle
oci.fleet_software_update.models.UpdatePrecheckActionDetails
oci.fleet_software_update.models.UpdateRollbackActionDetails
+ oci.fleet_software_update.models.UpdateRollbackCycleActionDetails
oci.fleet_software_update.models.UpdateScheduleDetails
oci.fleet_software_update.models.UpdateSequentialBatchingStrategyDetails
oci.fleet_software_update.models.UpdateServiceAvailabilityFactorBatchingStrategyDetails
diff --git a/docs/api/fleet_software_update/models/oci.fleet_software_update.models.CreateRollbackCycleApplyActionDetails.rst b/docs/api/fleet_software_update/models/oci.fleet_software_update.models.CreateRollbackCycleApplyActionDetails.rst
new file mode 100644
index 0000000000..5359898679
--- /dev/null
+++ b/docs/api/fleet_software_update/models/oci.fleet_software_update.models.CreateRollbackCycleApplyActionDetails.rst
@@ -0,0 +1,11 @@
+CreateRollbackCycleApplyActionDetails
+=====================================
+
+.. currentmodule:: oci.fleet_software_update.models
+
+.. autoclass:: CreateRollbackCycleApplyActionDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/fleet_software_update/models/oci.fleet_software_update.models.RollbackCycleAction.rst b/docs/api/fleet_software_update/models/oci.fleet_software_update.models.RollbackCycleAction.rst
new file mode 100644
index 0000000000..74ad9999da
--- /dev/null
+++ b/docs/api/fleet_software_update/models/oci.fleet_software_update.models.RollbackCycleAction.rst
@@ -0,0 +1,11 @@
+RollbackCycleAction
+===================
+
+.. currentmodule:: oci.fleet_software_update.models
+
+.. autoclass:: RollbackCycleAction
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/fleet_software_update/models/oci.fleet_software_update.models.RollbackCycleActionSummary.rst b/docs/api/fleet_software_update/models/oci.fleet_software_update.models.RollbackCycleActionSummary.rst
new file mode 100644
index 0000000000..3d4e584ed6
--- /dev/null
+++ b/docs/api/fleet_software_update/models/oci.fleet_software_update.models.RollbackCycleActionSummary.rst
@@ -0,0 +1,11 @@
+RollbackCycleActionSummary
+==========================
+
+.. currentmodule:: oci.fleet_software_update.models
+
+.. autoclass:: RollbackCycleActionSummary
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/fleet_software_update/models/oci.fleet_software_update.models.RollbackCycleFsuJob.rst b/docs/api/fleet_software_update/models/oci.fleet_software_update.models.RollbackCycleFsuJob.rst
new file mode 100644
index 0000000000..1ca5c9ae0b
--- /dev/null
+++ b/docs/api/fleet_software_update/models/oci.fleet_software_update.models.RollbackCycleFsuJob.rst
@@ -0,0 +1,11 @@
+RollbackCycleFsuJob
+===================
+
+.. currentmodule:: oci.fleet_software_update.models
+
+.. autoclass:: RollbackCycleFsuJob
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/fleet_software_update/models/oci.fleet_software_update.models.RollbackCycleFsuJobSummary.rst b/docs/api/fleet_software_update/models/oci.fleet_software_update.models.RollbackCycleFsuJobSummary.rst
new file mode 100644
index 0000000000..f4944e4854
--- /dev/null
+++ b/docs/api/fleet_software_update/models/oci.fleet_software_update.models.RollbackCycleFsuJobSummary.rst
@@ -0,0 +1,11 @@
+RollbackCycleFsuJobSummary
+==========================
+
+.. currentmodule:: oci.fleet_software_update.models
+
+.. autoclass:: RollbackCycleFsuJobSummary
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/fleet_software_update/models/oci.fleet_software_update.models.UpdateRollbackCycleActionDetails.rst b/docs/api/fleet_software_update/models/oci.fleet_software_update.models.UpdateRollbackCycleActionDetails.rst
new file mode 100644
index 0000000000..9d6ba70f94
--- /dev/null
+++ b/docs/api/fleet_software_update/models/oci.fleet_software_update.models.UpdateRollbackCycleActionDetails.rst
@@ -0,0 +1,11 @@
+UpdateRollbackCycleActionDetails
+================================
+
+.. currentmodule:: oci.fleet_software_update.models
+
+.. autoclass:: UpdateRollbackCycleActionDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/visual_builder.rst b/docs/api/visual_builder.rst
index 5c8792d371..0bd2da2677 100644
--- a/docs/api/visual_builder.rst
+++ b/docs/api/visual_builder.rst
@@ -20,14 +20,16 @@ Visual Builder
oci.visual_builder.models.ApplicationSummary
oci.visual_builder.models.ApplicationSummaryCollection
- oci.visual_builder.models.AttachmentDetails
oci.visual_builder.models.ChangeVbInstanceCompartmentDetails
oci.visual_builder.models.CreateCustomEndpointDetails
oci.visual_builder.models.CreateVbInstanceDetails
oci.visual_builder.models.CustomEndpointDetails
- oci.visual_builder.models.IdcsInfoDetails
+ oci.visual_builder.models.NetworkEndpointDetails
+ oci.visual_builder.models.PrivateEndpointDetails
oci.visual_builder.models.RequestSummarizedApplicationsDetails
oci.visual_builder.models.UpdateCustomEndpointDetails
+ oci.visual_builder.models.UpdateNetworkEndpointDetails
+ oci.visual_builder.models.UpdatePrivateEndpointDetails
oci.visual_builder.models.UpdateVbInstanceDetails
oci.visual_builder.models.VbInstance
oci.visual_builder.models.VbInstanceSummary
diff --git a/docs/api/visual_builder/models/oci.visual_builder.models.AttachmentDetails.rst b/docs/api/visual_builder/models/oci.visual_builder.models.NetworkEndpointDetails.rst
similarity index 65%
rename from docs/api/visual_builder/models/oci.visual_builder.models.AttachmentDetails.rst
rename to docs/api/visual_builder/models/oci.visual_builder.models.NetworkEndpointDetails.rst
index 5ac18b5d62..984e196597 100644
--- a/docs/api/visual_builder/models/oci.visual_builder.models.AttachmentDetails.rst
+++ b/docs/api/visual_builder/models/oci.visual_builder.models.NetworkEndpointDetails.rst
@@ -1,9 +1,9 @@
-AttachmentDetails
-=================
+NetworkEndpointDetails
+======================
.. currentmodule:: oci.visual_builder.models
-.. autoclass:: AttachmentDetails
+.. autoclass:: NetworkEndpointDetails
:show-inheritance:
:special-members: __init__
:members:
diff --git a/docs/api/visual_builder/models/oci.visual_builder.models.IdcsInfoDetails.rst b/docs/api/visual_builder/models/oci.visual_builder.models.PrivateEndpointDetails.rst
similarity index 65%
rename from docs/api/visual_builder/models/oci.visual_builder.models.IdcsInfoDetails.rst
rename to docs/api/visual_builder/models/oci.visual_builder.models.PrivateEndpointDetails.rst
index 92da89af2e..b5a1bfeca7 100644
--- a/docs/api/visual_builder/models/oci.visual_builder.models.IdcsInfoDetails.rst
+++ b/docs/api/visual_builder/models/oci.visual_builder.models.PrivateEndpointDetails.rst
@@ -1,9 +1,9 @@
-IdcsInfoDetails
-===============
+PrivateEndpointDetails
+======================
.. currentmodule:: oci.visual_builder.models
-.. autoclass:: IdcsInfoDetails
+.. autoclass:: PrivateEndpointDetails
:show-inheritance:
:special-members: __init__
:members:
diff --git a/docs/api/visual_builder/models/oci.visual_builder.models.UpdateNetworkEndpointDetails.rst b/docs/api/visual_builder/models/oci.visual_builder.models.UpdateNetworkEndpointDetails.rst
new file mode 100644
index 0000000000..ee79f1812b
--- /dev/null
+++ b/docs/api/visual_builder/models/oci.visual_builder.models.UpdateNetworkEndpointDetails.rst
@@ -0,0 +1,11 @@
+UpdateNetworkEndpointDetails
+============================
+
+.. currentmodule:: oci.visual_builder.models
+
+.. autoclass:: UpdateNetworkEndpointDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/docs/api/visual_builder/models/oci.visual_builder.models.UpdatePrivateEndpointDetails.rst b/docs/api/visual_builder/models/oci.visual_builder.models.UpdatePrivateEndpointDetails.rst
new file mode 100644
index 0000000000..ca527afd9a
--- /dev/null
+++ b/docs/api/visual_builder/models/oci.visual_builder.models.UpdatePrivateEndpointDetails.rst
@@ -0,0 +1,11 @@
+UpdatePrivateEndpointDetails
+============================
+
+.. currentmodule:: oci.visual_builder.models
+
+.. autoclass:: UpdatePrivateEndpointDetails
+ :show-inheritance:
+ :special-members: __init__
+ :members:
+ :undoc-members:
+ :inherited-members:
\ No newline at end of file
diff --git a/examples/showoci/CHANGELOG.rst b/examples/showoci/CHANGELOG.rst
index fc8d09c791..3b97856ac4 100644
--- a/examples/showoci/CHANGELOG.rst
+++ b/examples/showoci/CHANGELOG.rst
@@ -4,6 +4,18 @@ All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog `_.
+=====================
+24.12.10 - 24.12.10
+=====================
+* Added Vnic information
+* Added retry_strategy to vnic call
+* Improve the code
+
+=====================
+24.11.26 - 24.11.26
+=====================
+* Added few more variables to databases and fixed the autobck flag
+
=====================
24.11.12 - 24.11.12
=====================
diff --git a/examples/showoci/showoci.py b/examples/showoci/showoci.py
index 62216b9003..29b1aac2e6 100644
--- a/examples/showoci/showoci.py
+++ b/examples/showoci/showoci.py
@@ -128,7 +128,7 @@
import os
import time
-version = "24.11.12"
+version = "24.12.10"
##########################################################################
# check OCI version
diff --git a/examples/showoci/showoci_data.py b/examples/showoci/showoci_data.py
index dc7844bdd8..a8c691e843 100644
--- a/examples/showoci/showoci_data.py
+++ b/examples/showoci/showoci_data.py
@@ -20,7 +20,7 @@
class ShowOCIData(object):
- version = "24.11.12"
+ version = "24.12.10"
############################################
# ShowOCIService - Service object to query
@@ -803,7 +803,6 @@ def __get_core_network_vcn_security_lists(self, vcn_id):
##########################################################################
# Print Network vcn security groups
##########################################################################
-
def __get_core_network_vcn_security_groups(self, vcn_id):
data = []
try:
@@ -816,6 +815,7 @@ def __get_core_network_vcn_security_groups(self, vcn_id):
'compartment_path': nsg['compartment_path'],
'compartment_id': nsg['compartment_id'],
'sec_rules': [],
+ 'vnics': nsg['vnics'],
'time_created': nsg['time_created'],
'defined_tags': nsg['defined_tags'],
'freeform_tags': nsg['freeform_tags']
@@ -1238,6 +1238,19 @@ def __get_core_network_subnet_name(self, subnet_id):
except Exception as e:
self.__print_error(e)
+ ##########################################################################
+ # get Subnet Names
+ # 12/1/2024 - Keeping string to avoid breaking json
+ ##########################################################################
+ def __get_core_network_subnet_names(self, subnet_ids):
+ try:
+ ret_val = []
+ for subnet in subnet_ids:
+ ret_val.append(self.__get_core_network_subnet_name(subnet))
+ return ret_val
+ except Exception as e:
+ self.__print_error(e)
+
##########################################################################
# print network remote peering
##########################################################################
@@ -1492,7 +1505,6 @@ def __get_core_block_volume_backup_policy(self, block_storage, volume_id):
##########################################################################
# get Core Block boot volume
##########################################################################
-
def __get_core_block_volume_boot(self, bva, compartment_name):
try:
value = {}
@@ -1889,6 +1901,7 @@ def __get_core_compute_instances(self, region_name, compartment):
'launch_remote_data_volume_type': instance['launch_remote_data_volume_type'],
'launch_is_pv_encryption_in_transit_enabled': instance['launch_is_pv_encryption_in_transit_enabled'],
'launch_is_consistent_volume_naming_enabled': instance['launch_is_consistent_volume_naming_enabled'],
+ 'are_legacy_imds_endpoints_disabled': instance['are_legacy_imds_endpoints_disabled'],
'platform_type': instance['platform_type'],
'platform_is_secure_boot_enabled': instance['platform_is_secure_boot_enabled'],
'platform_is_trusted_platform_module_enabled': instance['platform_is_trusted_platform_module_enabled'],
@@ -1938,10 +1951,10 @@ def __get_core_compute_instances(self, region_name, compartment):
comp_text = " (Compartment=" + vnic['compartment_name'] + ")"
if 'vnic_details' in vnic:
- if 'display_name' in vnic['vnic_details']:
+ if 'name' in vnic['vnic_details']:
val = {
'id': vnic['vnic_id'],
- 'desc': vnic['vnic_details']['display_name'] + str(comp_text),
+ 'desc': vnic['vnic_details']['name'] + str(comp_text),
'details': vnic['vnic_details']
}
if vnic['vnic_details'] and 'internal_fqdn' in vnic['vnic_details']:
@@ -1949,6 +1962,7 @@ def __get_core_compute_instances(self, region_name, compartment):
fqdn = vnic['vnic_details']['internal_fqdn']
if 'ip_addresses' in vnic['vnic_details']:
val['ip_addresses'] = vnic['vnic_details']['ip_addresses']
+
vnicdata.append(val)
inst['vnic'] = vnicdata
@@ -2217,8 +2231,8 @@ def __get_database_db_nodes(self, db_nodes):
'software_storage_size_in_gb': db_node['software_storage_size_in_gb'],
'lifecycle_state': db_node['lifecycle_state'],
'hostname': db_node['hostname'],
- 'nsg_names': nsg_names,
'nsg_ids': nsg_ids,
+ 'nsg_names': nsg_names,
'vnic_id': db_node['vnic_id'],
'backup_vnic_id': db_node['backup_vnic_id'],
'vnic_details': db_node['vnic_details'],
@@ -2278,7 +2292,7 @@ def __get_database_db_nodes(self, db_nodes):
return data
##########################################################################
- # print database Databases
+ # __get_database_db_databases
##########################################################################
def __get_database_db_databases(self, dbs):
@@ -2287,36 +2301,46 @@ def __get_database_db_databases(self, dbs):
for db in dbs:
- backupstr = (" - AutoBck=N" if db['auto_backup_enabled'] else " - AutoBck=Y")
+ backupstr = (" - AutoBck=Y" if db['auto_backup_enabled'] else " - AutoBck=N")
pdb_name = db['pdb_name'] + " - " if db['pdb_name'] else ""
- value = {'name': (str(db['db_name']) + " - " + str(db['db_unique_name']) + " - " +
- pdb_name +
- str(db['db_workload']) + " - " +
- str(db['character_set']) + " - " +
- str(db['ncharacter_set']) + " - " +
- str(db['lifecycle_state']) + backupstr),
- 'backups': self.__get_database_db_backups(db['backups']) if 'backups' in db else [],
- 'pdbs': self.__get_database_db_pdbs(db['pdbs']) if 'pdbs' in db else [],
- 'time_created': db['time_created'],
- 'defined_tags': db['defined_tags'],
- 'dataguard': self.__get_database_db_dataguard(db['dataguard']),
- 'freeform_tags': db['freeform_tags'],
- 'db_name': db['db_name'],
- 'pdb_name': pdb_name,
- 'db_workload': db['db_workload'],
- 'character_set': db['character_set'],
- 'ncharacter_set': db['ncharacter_set'],
- 'db_unique_name': db['db_unique_name'],
- 'lifecycle_state': db['lifecycle_state'],
- 'auto_backup_enabled': db['auto_backup_enabled'],
- 'connection_strings_cdb': db['connection_strings_cdb'],
- 'source_database_point_in_time_recovery_timestamp': db['source_database_point_in_time_recovery_timestamp'],
- 'kms_key_id': db['kms_key_id'],
- 'kms_key_name': self.__get_vault_key_name(db['kms_key_id']),
- 'vault_id': db['vault_id'],
- 'last_backup_timestamp': db['last_backup_timestamp'],
- 'id': db['id']
- }
+ value = {
+ 'name': (
+ str(db['db_name']) + " - " + str(db['db_unique_name']) + " - " +
+ pdb_name +
+ str(db['db_workload']) + " - " +
+ str(db['character_set']) + " - " +
+ str(db['ncharacter_set']) + " - " +
+ str(db['lifecycle_state']) + backupstr
+ ),
+ 'backups': self.__get_database_db_backups(db['backups']) if 'backups' in db else [],
+ 'pdbs': self.__get_database_db_pdbs(db['pdbs']) if 'pdbs' in db else [],
+ 'time_created': db['time_created'],
+ 'defined_tags': db['defined_tags'],
+ 'dataguard': self.__get_database_db_dataguard(db['dataguard']),
+ 'freeform_tags': db['freeform_tags'],
+ 'db_name': db['db_name'],
+ 'pdb_name': pdb_name,
+ 'db_workload': db['db_workload'],
+ 'character_set': db['character_set'],
+ 'ncharacter_set': db['ncharacter_set'],
+ 'db_unique_name': db['db_unique_name'],
+ 'lifecycle_state': db['lifecycle_state'],
+ 'auto_backup_enabled': db['auto_backup_enabled'],
+ 'connection_strings_cdb': db['connection_strings_cdb'],
+ 'source_database_point_in_time_recovery_timestamp': db['source_database_point_in_time_recovery_timestamp'],
+ 'kms_key_id': db['kms_key_id'],
+ 'kms_key_name': self.__get_vault_key_name(db['kms_key_id']),
+ 'vault_id': db['vault_id'],
+ 'last_backup_timestamp': db['last_backup_timestamp'],
+ 'id': db['id'],
+ # Added 11/15/2024
+ 'kms_key_version_id': db['kms_key_version_id'],
+ 'key_store_id': db['key_store_id'],
+ 'key_store_wallet_name': db['key_store_wallet_name'],
+ 'last_failed_backup_timestamp': db['last_failed_backup_timestamp'],
+ 'last_backup_duration_in_seconds': db['last_backup_duration_in_seconds'],
+ 'db_backup_config': db['db_backup_config']
+ }
data.append(value)
return data
@@ -2570,7 +2594,9 @@ def __get_database_db_exadata(self, region_name, compartment):
'backup_subnet_name': vm['backup_subnet_name'],
'backup_vcn_name': vm['backup_vcn_name'],
'nsg_ids': vm['nsg_ids'],
+ 'nsg_names': vm['nsg_names'],
'backup_network_nsg_ids': vm['backup_network_nsg_ids'],
+ 'backup_network_nsg_names': vm['backup_network_nsg_names'],
'last_update_history_entry_id': vm['last_update_history_entry_id'],
'shape': vm['shape'],
'listener_port': vm['listener_port'],
@@ -3207,6 +3233,7 @@ def __get_database_adb_dedicated(self, region_name, compartment, infra_id):
'subnet_name_full': vm['subnet_name_full'],
'vcn_name': vm['vcn_name'],
'nsg_ids': vm['nsg_ids'],
+ 'nsg_names': vm['nsg_names'],
'last_update_history_entry_id': vm['last_update_history_entry_id'],
'lifecycle_state': vm['lifecycle_state'],
'time_created': vm['time_created'],
@@ -3844,30 +3871,32 @@ def __get_load_balancer_details(self, load_balance_obj):
try:
lb = load_balance_obj
flexible = (str(lb['shape_min_mbps']) + "mbps:" + str(lb['shape_max_mbps']) + "mbps - ") if lb['shape_min_mbps'] else ""
- data['id'] = str(lb['id'])
- data['name'] = str(lb['display_name']) + " - " + str(lb['shape_name']) + " - " + flexible + ("(Private)" if lb['is_private'] else "(Public)")
- data['status'] = lb['status']
- data['shape_name'] = lb['shape_name']
- data['shape_min_mbps'] = lb['shape_min_mbps']
- data['shape_max_mbps'] = lb['shape_max_mbps']
- data['display_name'] = lb['display_name']
- data['is_private'] = lb['is_private']
- data['ips'] = lb['ip_addresses']
- data['path_route'] = lb['path_route']
- data['nsg_ids'] = lb['nsg_ids']
- data['nsg_names'] = lb['nsg_names']
- data['hostnames'] = [x['desc'] for x in lb['hostnames']]
- data['rule_sets'] = lb['rule_sets']
- data['compartment_name'] = lb['compartment_name']
- data['compartment_path'] = lb['compartment_path']
- data['compartment_id'] = lb['compartment_id']
- data['subnet_ids'] = lb['subnet_ids']
- data['time_created'] = lb['time_created']
- data['defined_tags'] = lb['defined_tags']
- data['freeform_tags'] = lb['freeform_tags']
- data['certificates'] = lb['certificates']
- data['ssl_cipher_suites'] = lb['ssl_cipher_suites']
- data['routing_policies'] = lb['routing_policies']
+ data = {
+ 'id': str(lb['id']),
+ 'name': str(lb['display_name']) + " - " + str(lb['shape_name']) + " - " + flexible + ("(Private)" if lb['is_private'] else "(Public)"),
+ 'status': lb['status'],
+ 'shape_name': lb['shape_name'],
+ 'shape_min_mbps': lb['shape_min_mbps'],
+ 'shape_max_mbps': lb['shape_max_mbps'],
+ 'display_name': lb['display_name'],
+ 'is_private': lb['is_private'],
+ 'ips': lb['ip_addresses'],
+ 'path_route': lb['path_route'],
+ 'nsg_ids': lb['nsg_ids'],
+ 'nsg_names': lb['nsg_names'],
+ 'hostnames': [x['info'] for x in lb['hostnames']],
+ 'rule_sets': lb['rule_sets'],
+ 'compartment_name': lb['compartment_name'],
+ 'compartment_path': lb['compartment_path'],
+ 'compartment_id': lb['compartment_id'],
+ 'subnet_ids': lb['subnet_ids'],
+ 'time_created': lb['time_created'],
+ 'defined_tags': lb['defined_tags'],
+ 'freeform_tags': lb['freeform_tags'],
+ 'certificates': lb['certificates'],
+ 'ssl_cipher_suites': lb['ssl_cipher_suites'],
+ 'routing_policies': lb['routing_policies']
+ }
# subnets
datasub = []
@@ -4165,12 +4194,10 @@ def __get_container_main(self, region_name, compartment):
'compartment_name': np['compartment_name'],
'compartment_path': np['compartment_path'],
'compartment_id': np['compartment_id'],
- 'subnets': [],
- 'subnet_ids': np['subnet_ids']}
+ 'subnet_ids': np['subnet_ids'],
+ 'subnets': self.__get_core_network_subnet_names(np['subnet_ids'])
+ }
- # subnets
- for sub in np['subnet_ids']:
- nval['subnets'].append(self.__get_core_network_subnet_name(sub))
val['node_pools'].append(nval)
data.append(val)
@@ -4217,8 +4244,8 @@ def __get_functions_main(self, region_name, compartment):
'id': fn['id'],
'display_name': fn['display_name'],
'lifecycle_state': fn['lifecycle_state'],
- 'subnets': [],
'subnet_ids': fn['subnet_ids'],
+ 'subnets': self.__get_core_network_subnet_names(fn['subnet_ids']),
'network_security_group_ids': fn['network_security_group_ids'],
'network_security_group_names': fn['network_security_group_names'],
'shape': fn['shape'],
diff --git a/examples/showoci/showoci_output.py b/examples/showoci/showoci_output.py
index 3f8e0d6cc2..3d29ef0f8b 100644
--- a/examples/showoci/showoci_output.py
+++ b/examples/showoci/showoci_output.py
@@ -22,7 +22,7 @@
class ShowOCIOutput(object):
- version = "24.11.12"
+ version = "24.12.10"
##########################################################################
# spaces for align
@@ -52,6 +52,22 @@ def print_header(self, name, category, topBorder=True, bottomBorder=True, printT
if bottomBorder:
print('#' * chars)
+ ##########################################################################
+ # list_to_str
+ ##########################################################################
+ def list_to_str(self, v_list, attr=None):
+ try:
+ if not v_list or not isinstance(v_list, (list, tuple)):
+ return ''
+
+ if attr:
+ return str(', '.join(x[attr] for x in v_list))
+ else:
+ return str(', '.join(x for x in v_list))
+
+ except Exception as e:
+ self.__print_error("list_to_str" + (" ATTR='" + attr + "'" if attr else ""), e)
+
##########################################################################
# print_oci_main
##########################################################################
@@ -170,11 +186,12 @@ def get_errors(self):
##########################################################################
def __print_error(self, msg, e):
classname = type(self).__name__
+ caller_function = sys._getframe(2).f_code.co_name + ":" + sys._getframe(1).f_code.co_name
if isinstance(e, KeyError):
- print("\nError in " + classname + ":" + msg + ": KeyError " + str(e.args))
+ print("\nError in " + classname + ":" + caller_function + ":" + msg + ": KeyError " + str(e.args))
else:
- print("\nError in " + classname + ":" + msg + ": " + str(e))
+ print("\nError in " + classname + ":" + caller_function + ":" + msg + ": " + str(e))
self.error += 1
@@ -1084,9 +1101,9 @@ def __print_load_balancer_details(self, load_balance_obj):
if listener['path_route_set_name']:
print(self.tabs + " : Paths: " + listener['path_route_set_name'])
if listener['rule_set_names']:
- print(self.tabs + " : Rules: " + str(', '.join(x for x in listener['rule_set_names'])))
+ print(self.tabs + " : Rules: " + self.list_to_str(listener['rule_set_names']))
if listener['hostname_names']:
- print(self.tabs + " : Hosts: " + str(', '.join(x for x in listener['hostname_names'])))
+ print(self.tabs + " : Hosts: " + self.list_to_str(listener['hostname_names']))
print("")
# Path route set
@@ -1104,7 +1121,7 @@ def __print_load_balancer_details(self, load_balance_obj):
if 'rule_sets' in lb:
for rs in lb['rule_sets']:
- print(self.tabs + "RuleSet : " + rs['name'] + ": " + str(', '.join(x['action'] for x in rs['items'])))
+ print(self.tabs + "RuleSet : " + rs['name'] + ": " + self.list_to_str(rs['items'], 'action'))
except Exception as e:
self.__print_error("__print_load_balancer_details", e)
@@ -1357,7 +1374,7 @@ def __print_database_db_exadata_vmcluster(self, vmclusters):
# databases
for db in db_home['databases']:
- pdbs = ", PDBS: " + str(', '.join(x['name'] for x in db['pdbs'])) if db['pdbs'] else ""
+ pdbs = ", PDBS: " + self.list_to_str(db['pdbs'], 'name')
print(self.tabs + self.tabs + " DB : " + db['name'] + pdbs)
# print data guard
@@ -1585,7 +1602,7 @@ def __print_database_db_exacc_infra(self, list_exadata):
# databases
for db in db_home['databases']:
- pdbs = ", PDBS: " + str(', '.join(x['name'] for x in db['pdbs'])) if db['pdbs'] else ""
+ pdbs = ", PDBS: " + self.list_to_str(db['pdbs'], 'name')
print(self.tabs + self.tabs + " DB : " + db['name'] + pdbs)
# print data guard
@@ -1754,7 +1771,7 @@ def __print_database_db_system(self, list_db_systems):
# databases
for db in db_home['databases']:
- pdbs = ", PDBS: " + str(', '.join(x['name'] for x in db['pdbs'])) if db['pdbs'] else ""
+ pdbs = ", PDBS: " + self.list_to_str(db['pdbs'], 'name')
print(self.tabs + self.tabs + " DB : " + db['name'] + pdbs)
# print data guard
@@ -2926,7 +2943,7 @@ def __print_core_compute_instances(self, instances):
if vnic['details']['internal_fqdn']:
print(self.tabs2 + " : Int FQDN : " + vnic['details']['internal_fqdn'])
if 'ip_addresses' in vnic:
- print(self.tabs2 + " : IP Addresses : " + str(', '.join(x['ip_address'] for x in vnic['ip_addresses'])))
+ print(self.tabs2 + " : IP Addresses : " + self.list_to_str(vnic['ip_addresses'], 'ip_address'))
if 'console' in instance:
if instance['console']:
@@ -4491,6 +4508,22 @@ def __add_to_error_array(self, classname, caller_function, compartment_name, err
except Exception as e:
print("\nError in __add_to_error_array " + str(e))
+ ##########################################################################
+ # __csv_list_to_str
+ ##########################################################################
+ def __csv_list_to_str(self, v_list, attr=None):
+ try:
+ if not v_list or not isinstance(v_list, (list, tuple)):
+ return ''
+
+ if attr:
+ return str(', '.join(x[attr] for x in v_list))
+ else:
+ return str(', '.join(x for x in v_list))
+
+ except Exception as e:
+ self.__print_error("__csv_list_to_str" + (" ATTR='" + attr + "'" if attr else ""), e)
+
##########################################################################
# generate_csv
##########################################################################
@@ -4802,9 +4835,7 @@ def __get_freeform_tags(self, freeform_tag):
if not freeform_tag:
return ""
- ret_str = str(', '.join(key + "=" + freeform_tag[key] for key in freeform_tag.keys()))
-
- return ret_str
+ return str(', '.join(key + "=" + freeform_tag[key] for key in freeform_tag.keys()))
except Exception as e:
self.__print_error("__get_freeform_tags", e)
@@ -5037,13 +5068,13 @@ def __csv_identity_domains_users(self, users, domain_name, domain_id):
'tags': str(','.join(x['key'] + "=" + x['value'] for x in var['tags'])),
'freeform_tags': self.__get_freeform_tags(var['freeform_tags']),
'defined_tags': self.__get_defined_tags(var['defined_tags']),
- 'phone_numbers': str(','.join(x for x in var['phone_numbers'])),
- 'ims': str(','.join(x for x in var['ims'])),
- 'emails': str(','.join(x for x in var['emails'])),
- 'entitlements': str(','.join(x for x in var['entitlements'])),
- 'x509_certificates': str(','.join(x for x in var['x509_certificates'])),
- 'groups': str(','.join(x['display'] for x in var['groups'])),
- 'groups_ids': str(','.join(x['ocid'] for x in var['groups'])),
+ 'phone_numbers': self.__csv_list_to_str(var['phone_numbers']),
+ 'ims': self.__csv_list_to_str(var['ims']),
+ 'emails': self.__csv_list_to_str(var['emails']),
+ 'entitlements': self.__csv_list_to_str(var['entitlements']),
+ 'x509_certificates': self.__csv_list_to_str(var['x509_certificates']),
+ 'groups': self.__csv_list_to_str(var['groups'], 'display'),
+ 'groups_ids': self.__csv_list_to_str(var['groups'], 'ocid'),
'is_federated_user': var['ext_user']['is_federated_user'],
'is_authentication_delegated': var['ext_user']['is_authentication_delegated'],
'status': var['ext_user']['status'],
@@ -5126,8 +5157,8 @@ def __csv_identity_domains_users(self, users, domain_name, domain_id):
def __csv_identity_domains_groups(self, groups, domain_name, domain_id):
try:
for var in groups:
- members = "Over 200 members" if len(var['members']) > 200 else str(','.join(x['name'] for x in var['members']))
- members_ids = "Over 200 members" if len(var['members']) > 200 else str(','.join(x['ocid'] for x in var['members']))
+ members = "Over 200 members" if len(var['members']) > 200 else self.__csv_list_to_str(var['members'], 'name')
+ members_ids = "Over 200 members" if len(var['members']) > 200 else self.__csv_list_to_str(var['members'], 'ocid')
data = {
'domain_id': domain_id,
'domain_name': domain_name,
@@ -5201,8 +5232,8 @@ def __csv_identity_domains_dynamic_groups(self, groups, domain_name, domain_id):
'matching_rule': var['matching_rule'],
'description': var['description'],
'display_name': var['display_name'],
- 'grants': str(','.join(x['value'] for x in var['grants'])),
- 'dynamic_group_app_roles': str(','.join(x['value'] for x in var['dynamic_group_app_roles'])),
+ 'grants': self.__csv_list_to_str(var['grants'], 'value'),
+ 'dynamic_group_app_roles': self.__csv_list_to_str(var['dynamic_group_app_roles'], 'value'),
'freeform_tags': self.__get_freeform_tags(var['freeform_tags']),
'defined_tags': self.__get_defined_tags(var['defined_tags'])
}
@@ -5238,7 +5269,7 @@ def __csv_identity_domains_network_perimeters(self, network_perimeters, domain_n
'idcs_last_upgraded_in_release': str(var['idcs_last_upgraded_in_release']),
'tags': str(','.join(x['key'] + "=" + x['value'] for x in var['tags'])),
'compartment_ocid': var['compartment_ocid'],
- 'ip_addresses': str(','.join(x['value'] for x in var['ip_addresses']))
+ 'ip_addresses': self.__csv_list_to_str(var['ip_addresses'], 'value')
}
self.csv_identity_domains_network_perimeters.append(data)
@@ -5319,8 +5350,8 @@ def __csv_identity_domains_idps(self, groups, domain_name, domain_id):
'social_authz_url': var['ext_social_idp']['authz_url'],
'social_access_token_url': var['ext_social_idp']['access_token_url'],
'social_profile_url': var['ext_social_idp']['profile_url'],
- 'social_scope': str(','.join(x for x in var['ext_social_idp']['scope'])),
- 'social_admin_scope': str(','.join(x for x in var['ext_social_idp']['admin_scope'])),
+ 'social_scope': self.__csv_list_to_str(var['ext_social_idp']['scope']),
+ 'social_admin_scope': self.__csv_list_to_str(var['ext_social_idp']['admin_scope']),
'social_consumer_key': var['ext_social_idp']['consumer_key'],
'social_consumer_secret': var['ext_social_idp']['consumer_secret'],
'social_service_provider_name': var['ext_social_idp']['service_provider_name'],
@@ -5467,7 +5498,7 @@ def __csv_identity_domains_auth_factor(self, groups, domain_name, domain_id):
'totp_email_otp_validity_duration_in_mins': var['totp_settings']['email_otp_validity_duration_in_mins'],
'totp_email_passcode_length': var['totp_settings']['email_passcode_length'],
'third_party_duo_security_settings': var['third_party_duo_security_settings'],
- 'compliance_policy': str(','.join(x['value']for x in var['compliance_policy'])),
+ 'compliance_policy': self.__csv_list_to_str(var['compliance_policy'], 'value'),
'fido_attestation': var['ext_fido_auth_factor']['attestation'],
'fido_authenticator_selection_attachment': var['ext_fido_auth_factor']['authenticator_selection_attachment'],
'fido_authenticator_selection_user_verification': var['ext_fido_auth_factor']['authenticator_selection_user_verification'],
@@ -5635,9 +5666,9 @@ def __csv_identity_domains_rules(self, rules, domain_name, domain_id):
'locked': var['locked'],
'rule_groovy': var['rule_groovy'],
'rule_return': str(','.join(x['name'] + ':' + x['value'] for x in var['rule_return'])),
- 'policy_ids': str(','.join(x for x in var['policy_ids'])),
- 'policy_ids_position': str(','.join(x for x in var['policy_ids_position'])),
- 'policy_names': str(','.join(x for x in var['policy_names'])),
+ 'policy_ids': self.__csv_list_to_str(var['policy_ids']),
+ 'policy_ids_position': self.__csv_list_to_str(var['policy_ids_position']),
+ 'policy_names': self.__csv_list_to_str(var['policy_names']),
'policy_type_ref': var['policy_type']['ref'] if var['policy_type'] else "",
'policy_type_value': var['policy_type']['value'] if var['policy_type'] else "",
'condition_value': "",
@@ -5769,10 +5800,10 @@ def __csv_identity_network_sources(self, data):
value = {
'description': ns['description'],
- 'services': ",".join(ns['services']),
- 'public_source_list': ",".join(ns['public_source_list']),
- 'virtual_source_list': ",".join(x['ip_ranges'] for x in ns['virtual_source_list']),
- 'vcn_ids': ",".join(x['vcn_id'] for x in ns['virtual_source_list']),
+ 'services': self.__csv_list_to_str(ns['services']),
+ 'public_source_list': self.__csv_list_to_str(ns['public_source_list']),
+ 'virtual_source_list': self.__csv_list_to_str(ns['virtual_source_list'], 'ip_ranges'),
+ 'vcn_ids': self.__csv_list_to_str(ns['virtual_source_list'], 'vcn_id'),
'freeform_tags': self.__get_freeform_tags(ns['freeform_tags']),
'defined_tags': self.__get_defined_tags(ns['defined_tags']),
'id': ns['id']
@@ -5890,61 +5921,64 @@ def __csv_error_data(self, data):
def __csv_core_network_vcn_subnet(self, region_name, subnets, vcn, igw, sgw, nat, drg, lpg):
try:
for subnet in subnets:
- data = {'region_name': region_name,
+ data = {
+ 'region_name': region_name,
+ 'vcn_name': vcn['display_name'],
+ 'vcn_cidr': "",
+ 'vcn_cidrs': self.__csv_list_to_str(vcn['cidr_blocks']),
+ 'vcn_compartment': vcn['compartment_name'],
+ 'vcn_compartment_path': vcn['compartment_path'],
+ 'internet_gateway': igw,
+ 'service_gateway': sgw,
+ 'nat': nat,
+ 'drg': drg,
+ 'local_peering': lpg,
+ 'subnet_name': subnet['name'],
+ 'subnet_cidr': subnet['cidr_block'],
+ 'availability_domain': subnet['availability_domain'],
+ 'subnet_compartment': subnet['compartment_name'],
+ 'subnet_compartment_path': subnet['compartment_path'],
+ 'public_private': subnet['public_private'],
+ 'dhcp_options': subnet['dhcp_options'],
+ 'route': subnet['route'],
+ 'security_list': self.__csv_list_to_str(subnet['security_list']),
+ 'dns': subnet['dns'],
+ 'logs': self.__csv_list_to_str(subnet['logs'], 'name'),
+ 'freeform_tags': self.__get_freeform_tags(subnet['freeform_tags']),
+ 'defined_tags': self.__get_defined_tags(subnet['defined_tags']),
+ 'vcn_id': vcn['id'],
+ 'subnet_id': subnet['id']
+ }
+ self.csv_network_subnet.append(data)
+
+ # private ips
+ for ip in subnet['private_ips']:
+ data = {
+ 'region_name': region_name,
'vcn_name': vcn['display_name'],
'vcn_cidr': "",
- 'vcn_cidrs': str(','.join(x for x in vcn['cidr_blocks'])),
+ 'vcn_cidrs': self.__csv_list_to_str(vcn['cidr_blocks']),
'vcn_compartment': vcn['compartment_name'],
'vcn_compartment_path': vcn['compartment_path'],
- 'internet_gateway': igw,
- 'service_gateway': sgw,
- 'nat': nat,
- 'drg': drg,
- 'local_peering': lpg,
'subnet_name': subnet['name'],
'subnet_cidr': subnet['cidr_block'],
- 'availability_domain': subnet['availability_domain'],
'subnet_compartment': subnet['compartment_name'],
'subnet_compartment_path': subnet['compartment_path'],
- 'public_private': subnet['public_private'],
- 'dhcp_options': subnet['dhcp_options'],
- 'route': subnet['route'],
- 'security_list': str(', '.join(x for x in subnet['security_list'])),
- 'dns': subnet['dns'],
- 'logs': str(', '.join(x['name'] for x in subnet['logs'])),
- 'freeform_tags': self.__get_freeform_tags(subnet['freeform_tags']),
- 'defined_tags': self.__get_defined_tags(subnet['defined_tags']),
+ 'ip_address': ip['ip_address'],
+ 'display_name': ip['display_name'],
+ 'hostname_label': ip['hostname_label'],
+ 'is_primary': ip['is_primary'],
+ 'time_created': ip['time_created'],
+ 'ip_compartment_name': ip['compartment_name'],
+ 'ip_compartment_path': ip['compartment_path'],
+ 'ip_compartment_id': ip['compartment_id'],
+ 'privateip_id': ip['id'],
+ 'vlan_id': ip['vlan_id'],
'vcn_id': vcn['id'],
- 'subnet_id': subnet['id']}
- self.csv_network_subnet.append(data)
-
- # private ips
- for ip in subnet['private_ips']:
- data = {'region_name': region_name,
- 'vcn_name': vcn['display_name'],
- 'vcn_cidr': "",
- 'vcn_cidrs': str(','.join(x for x in vcn['cidr_blocks'])),
- 'vcn_compartment': vcn['compartment_name'],
- 'vcn_compartment_path': vcn['compartment_path'],
- 'subnet_name': subnet['name'],
- 'subnet_cidr': subnet['cidr_block'],
- 'subnet_compartment': subnet['compartment_name'],
- 'subnet_compartment_path': subnet['compartment_path'],
- 'ip_address': ip['ip_address'],
- 'display_name': ip['display_name'],
- 'hostname_label': ip['hostname_label'],
- 'is_primary': ip['is_primary'],
- 'time_created': ip['time_created'],
- 'ip_compartment_name': ip['compartment_name'],
- 'ip_compartment_path': ip['compartment_path'],
- 'ip_compartment_id': ip['compartment_id'],
- 'privateip_id': ip['id'],
- 'vlan_id': ip['vlan_id'],
- 'vcn_id': vcn['id'],
- 'subnet_id': subnet['id'],
- 'freeform_tags': self.__get_freeform_tags(ip['freeform_tags']),
- 'defined_tags': self.__get_defined_tags(ip['defined_tags'])
- }
+ 'subnet_id': subnet['id'],
+ 'freeform_tags': self.__get_freeform_tags(ip['freeform_tags']),
+ 'defined_tags': self.__get_defined_tags(ip['defined_tags'])
+ }
self.csv_network_subnet_prv_ips.append(data)
@@ -5965,7 +5999,7 @@ def __csv_core_network_vcn_security_lists(self, region_name, sec_lists, vcn):
'region_name': region_name,
'vcn_name': vcn['display_name'],
'vcn_cidr': "",
- 'vcn_cidrs': str(','.join(x for x in vcn['cidr_blocks'])),
+ 'vcn_cidrs': self.__csv_list_to_str(vcn['cidr_blocks']),
'vcn_compartment': vcn['compartment_name'],
'vcn_compartment_path': vcn['compartment_path'],
'sec_name': sl['name'],
@@ -5999,7 +6033,7 @@ def __csv_core_network_vcn_security_lists(self, region_name, sec_lists, vcn):
'region_name': region_name,
'vcn_name': vcn['display_name'],
'vcn_cidr': "",
- 'vcn_cidrs': str(','.join(x for x in vcn['cidr_blocks'])),
+ 'vcn_cidrs': self.__csv_list_to_str(vcn['cidr_blocks']),
'vcn_compartment': vcn['compartment_name'],
'vcn_compartment_path': vcn['compartment_path'],
'sec_name': sl['name'],
@@ -6054,11 +6088,11 @@ def __csv_core_network_drg(self, region_name, drgs):
'name': drg['name'],
'redundancy': drg['redundancy'],
'time_created': drg['time_created'][0:16],
- 'drg_route_tables': str(', '.join(x['display_name'] for x in drg['drg_route_tables'])),
+ 'drg_route_tables': self.__csv_list_to_str(drg['drg_route_tables'], 'display_name'),
'ip_sec_connections': str(', '.join(x['name'] + " " + x['tunnels_status'] for x in drg['ip_sec_connections'])),
- 'virtual_circuits': str(', '.join(x['name'] for x in drg['virtual_circuits'])),
+ 'virtual_circuits': self.__csv_list_to_str(drg['virtual_circuits'], 'name'),
'remote_peerings': str(', '.join(x['name'] + " " + x['peering_status'] for x in drg['remote_peerings'])),
- 'vcns': str(', '.join(x['name'] for x in drg['vcns'])),
+ 'vcns': self.__csv_list_to_str(drg['vcns'], 'name'),
'freeform_tags': self.__get_freeform_tags(drg['freeform_tags']),
'defined_tags': self.__get_defined_tags(drg['defined_tags']),
'id': drg['id']
@@ -6093,8 +6127,8 @@ def __csv_core_network_ipsec_tunnels(self, region_name, ipsecs):
'cpe': arr['cpe'],
'cpe_local_identifier': arr['cpe_local_identifier'],
'cpe_time_created': arr['time_created'][0:16],
- 'routes': str(', '.join(x for x in arr['routes'])),
- 'logs': str(', '.join(x['name'] for x in arr['logs'])),
+ 'routes': self.__csv_list_to_str(arr['routes']),
+ 'logs': self.__csv_list_to_str(arr['logs'], 'name'),
'drg_id': arr['drg_id'],
'cpe_id': arr['cpe_id'],
'ipsec_id': arr['id'],
@@ -6146,7 +6180,7 @@ def __csv_core_network_virtual_circuit(self, region_name, vcs):
'cross_connect_mappings': arr['cross_connect_mappings'],
'type': arr['type'],
'drg_route_table': arr['drg_route_table'],
- 'logs': str(', '.join(x['name'] for x in arr['logs'])),
+ 'logs': self.__csv_list_to_str(arr['logs'], 'name'),
'drg_id': arr['drg_id'],
'drg_route_table_id': arr['drg_route_table_id'],
'time_created': arr['time_created'],
@@ -6234,7 +6268,7 @@ def __csv_core_network_vcn_security_groups(self, region_name, nsg, vcn):
'region_name': region_name,
'vcn_name': vcn['display_name'],
'vcn_cidr': "",
- 'vcn_cidrs': str(','.join(x for x in vcn['cidr_blocks'])),
+ 'vcn_cidrs': self.__csv_list_to_str(vcn['cidr_blocks']),
'vcn_compartment': vcn['compartment_name'],
'vcn_compartment_path': vcn['compartment_path'],
'sec_name': sl['name'],
@@ -6265,7 +6299,8 @@ def __csv_core_network_vcn_security_groups(self, region_name, nsg, vcn):
'time_created': sl['time_created'],
'vcn_id': vcn['id'],
'sec_id': sl['id'],
- 'id': sl['id'] + ":Empty"
+ 'id': sl['id'] + ":Empty",
+ 'vnics': ""
}
self.csv_network_security_group.append(data)
@@ -6275,7 +6310,7 @@ def __csv_core_network_vcn_security_groups(self, region_name, nsg, vcn):
'region_name': region_name,
'vcn_name': vcn['display_name'],
'vcn_cidr': "",
- 'vcn_cidrs': str(','.join(x for x in vcn['cidr_blocks'])),
+ 'vcn_cidrs': self.__csv_list_to_str(vcn['cidr_blocks']),
'vcn_compartment': vcn['compartment_name'],
'vcn_compartment_path': vcn['compartment_path'],
'sec_name': sl['name'],
@@ -6306,7 +6341,8 @@ def __csv_core_network_vcn_security_groups(self, region_name, nsg, vcn):
'time_created': sl['time_created'],
'vcn_id': vcn['id'],
'sec_id': sl['id'],
- 'id': sl['id'] + ":" + slr['id']
+ 'id': sl['id'] + ":" + slr['id'],
+ 'vnics': str(';'.join(f'vnic_id={x["vnic_id"]}, time_associated={x["time_associated"]}' for x in sl['vnics']))
}
# check if id is in the list already
@@ -6329,21 +6365,22 @@ def __csv_core_network_vcn_security_groups(self, region_name, nsg, vcn):
def __csv_core_network_vcn_dhcp_options(self, region_name, dhcp_options, vcn):
try:
for dhcp in dhcp_options:
- data = {'region_name': region_name,
- 'vcn_name': vcn['display_name'],
- 'vcn_cidr': "",
- 'vcn_cidrs': str(','.join(x for x in vcn['cidr_blocks'])),
- 'vcn_compartment': vcn['compartment_name'],
- 'vcn_compartment_path': vcn['compartment_path'],
- 'dhcp_name': dhcp['name'],
- 'option_1': "",
- 'option_2': "",
- 'dhcp_compartment': dhcp['compartment_name'],
- 'dhcp_compartment_path': dhcp['compartment_path'],
- 'time_created': dhcp['time_created'][0:16],
- 'vcn_id': vcn['id'],
- 'dhcp_id': dhcp['id']
- }
+ data = {
+ 'region_name': region_name,
+ 'vcn_name': vcn['display_name'],
+ 'vcn_cidr': "",
+ 'vcn_cidrs': self.__csv_list_to_str(vcn['cidr_blocks']),
+ 'vcn_compartment': vcn['compartment_name'],
+ 'vcn_compartment_path': vcn['compartment_path'],
+ 'dhcp_name': dhcp['name'],
+ 'option_1': "",
+ 'option_2': "",
+ 'dhcp_compartment': dhcp['compartment_name'],
+ 'dhcp_compartment_path': dhcp['compartment_path'],
+ 'time_created': dhcp['time_created'][0:16],
+ 'vcn_id': vcn['id'],
+ 'dhcp_id': dhcp['id']
+ }
seq = 0
for opt in dhcp['opt']:
@@ -6367,42 +6404,44 @@ def __csv_core_network_vcn_route_tables(self, region_name, route_tables, vcn):
for rt in route_tables:
if len(rt['route_rules']) == 0:
- data = {'region_name': region_name,
+ data = {
+ 'region_name': region_name,
+ 'vcn_name': vcn['display_name'],
+ 'vcn_cidr': "",
+ 'vcn_cidrs': self.__csv_list_to_str(vcn['cidr_blocks']),
+ 'vcn_compartment': vcn['compartment_name'],
+ 'vcn_compartment_path': vcn['compartment_path'],
+ 'route_name': rt['name'],
+ 'route_compartment': rt['compartment_name'],
+ 'route_compartment_path': rt['compartment_path'],
+ 'destination': "",
+ 'route': "Empty",
+ 'time_created': rt['time_created'][0:16],
+ 'vcn_id': vcn['id'],
+ 'route_id': rt['id'],
+ 'id': rt['id'] + ":Empty"
+ }
+ self.csv_network_routes.append(data)
+
+ else:
+ for rl in rt['route_rules']:
+ data = {
+ 'region_name': region_name,
'vcn_name': vcn['display_name'],
'vcn_cidr': "",
- 'vcn_cidrs': str(','.join(x for x in vcn['cidr_blocks'])),
+ 'vcn_cidrs': self.__csv_list_to_str(vcn['cidr_blocks']),
'vcn_compartment': vcn['compartment_name'],
'vcn_compartment_path': vcn['compartment_path'],
'route_name': rt['name'],
'route_compartment': rt['compartment_name'],
'route_compartment_path': rt['compartment_path'],
- 'destination': "",
- 'route': "Empty",
+ 'destination': rl['destination'],
+ 'route': rl['desc'],
'time_created': rt['time_created'][0:16],
'vcn_id': vcn['id'],
'route_id': rt['id'],
- 'id': rt['id'] + ":Empty"
- }
- self.csv_network_routes.append(data)
-
- else:
- for rl in rt['route_rules']:
- data = {'region_name': region_name,
- 'vcn_name': vcn['display_name'],
- 'vcn_cidr': "",
- 'vcn_cidrs': str(','.join(x for x in vcn['cidr_blocks'])),
- 'vcn_compartment': vcn['compartment_name'],
- 'vcn_compartment_path': vcn['compartment_path'],
- 'route_name': rt['name'],
- 'route_compartment': rt['compartment_name'],
- 'route_compartment_path': rt['compartment_path'],
- 'destination': rl['destination'],
- 'route': rl['desc'],
- 'time_created': rt['time_created'][0:16],
- 'vcn_id': vcn['id'],
- 'route_id': rt['id'],
- 'id': rt['id'] + ":" + str(hash(rl['desc']))
- }
+ 'id': rt['id'] + ":" + str(hash(rl['desc']))
+ }
# check if id is in the list already
item_exists = False
@@ -6442,24 +6481,24 @@ def __csv_core_network_vcn(self, region_name, vcns):
subnets_cidrs = ""
if 'igw' in vcn['data']:
- igw = str(', '.join(x['name'] for x in vcn['data']['igw']))
+ igw = self.__csv_list_to_str(vcn['data']['igw'], 'name')
if 'sgw' in vcn['data']:
sgw = str(', '.join(x['name'] + " " + x['services'] for x in vcn['data']['sgw']))
if 'nat' in vcn['data']:
- nat = str(', '.join(x['name'] for x in vcn['data']['nat']))
+ nat = self.__csv_list_to_str(vcn['data']['nat'], 'name')
if 'drg_attached' in vcn['data']:
- drg = str(', '.join(x['name'] for x in vcn['data']['drg_attached']))
+ drg = self.__csv_list_to_str(vcn['data']['drg_attached'], 'name')
if 'local_peering' in vcn['data']:
- lpg = str(', '.join(x['name'] for x in vcn['data']['local_peering']))
+ lpg = self.__csv_list_to_str(vcn['data']['local_peering'], 'name')
if 'subnets' in vcn['data']:
self.__csv_core_network_vcn_subnet(region_name, vcn['data']['subnets'], vcn, igw, sgw, nat, drg, lpg)
- subnets = str(', '.join(x['name'] for x in vcn['data']['subnets']))
- subnets_cidrs = str(', '.join(x['cidr_block'] for x in vcn['data']['subnets']))
+ subnets = self.__csv_list_to_str(vcn['data']['subnets'], 'name')
+ subnets_cidrs = self.__csv_list_to_str(vcn['data']['subnets'], 'cidr_block')
if 'security_lists' in vcn['data']:
self.__csv_core_network_vcn_security_lists(region_name, vcn['data']['security_lists'], vcn)
@@ -6473,22 +6512,24 @@ def __csv_core_network_vcn(self, region_name, vcns):
if 'dhcp_options' in vcn['data']:
self.__csv_core_network_vcn_dhcp_options(region_name, vcn['data']['dhcp_options'], vcn)
- data = {'region_name': region_name,
- 'compartment': vcn['compartment_name'],
- 'compartment_path': vcn['compartment_path'],
- 'name': vcn['display_name'],
- 'cidr': "",
- 'cidrs': str(','.join(x for x in vcn['cidr_blocks'])),
- 'internet_gateway': igw,
- 'service_gateway': sgw,
- 'nat': nat,
- 'drg': drg,
- 'local_peering': lpg,
- 'subnets': subnets,
- 'subnets_cidrs': subnets_cidrs,
- 'freeform_tags': self.__get_freeform_tags(vcn['freeform_tags']),
- 'defined_tags': self.__get_defined_tags(vcn['defined_tags']),
- 'vcn_id': vcn['id']}
+ data = {
+ 'region_name': region_name,
+ 'compartment': vcn['compartment_name'],
+ 'compartment_path': vcn['compartment_path'],
+ 'name': vcn['display_name'],
+ 'cidr': "",
+ 'cidrs': self.__csv_list_to_str(vcn['cidr_blocks']),
+ 'internet_gateway': igw,
+ 'service_gateway': sgw,
+ 'nat': nat,
+ 'drg': drg,
+ 'local_peering': lpg,
+ 'subnets': subnets,
+ 'subnets_cidrs': subnets_cidrs,
+ 'freeform_tags': self.__get_freeform_tags(vcn['freeform_tags']),
+ 'defined_tags': self.__get_defined_tags(vcn['defined_tags']),
+ 'vcn_id': vcn['id']
+ }
self.csv_network_vcn.append(data)
@@ -6591,22 +6632,22 @@ def __csv_database_db_system(self, region_name, list_db_systems):
'backup_subnet': dbs['backup_subnet'],
'backup_subnet_name': dbs['backup_subnet_name'],
'backup_vcn_name': dbs['backup_vcn_name'],
- 'scan_ips': str(', '.join(x for x in dbs['scan_ips'])),
- 'vip_ips': str(', '.join(x for x in dbs['vip_ips'])),
+ 'scan_ips': self.__csv_list_to_str(dbs['scan_ips']),
+ 'vip_ips': self.__csv_list_to_str(dbs['vip_ips']),
'cluster_name': dbs['cluster_name'],
'time_created': dbs['time_created'][0:16],
'domain': dbs['domain'],
- 'db_nodes': str(', '.join(x['desc'] for x in dbs['db_nodes'])),
- 'db_homes': str(', '.join(x['home'] for x in dbs['db_homes'])),
+ 'db_nodes': self.__csv_list_to_str(dbs['db_nodes'], 'desc'),
+ 'db_homes': self.__csv_list_to_str(dbs['db_homes'], 'home'),
'freeform_tags': self.__get_freeform_tags(dbs['freeform_tags']),
'defined_tags': self.__get_defined_tags(dbs['defined_tags']),
'maintenance_window': dbs['maintenance_window']['display'] if dbs['maintenance_window'] else "",
'last_maintenance_run': dbs['last_maintenance_run']['maintenance_display'] if dbs['last_maintenance_run'] else "",
'next_maintenance_run': dbs['next_maintenance_run']['maintenance_display'] if dbs['next_maintenance_run'] else "",
'nsg_ids_names': dbs['nsg_ids_names'],
- 'nsg_ids': str(', '.join(x for x in dbs['nsg_ids'])) if dbs['nsg_ids'] else "",
+ 'nsg_ids': self.__csv_list_to_str(dbs['nsg_ids']),
'backup_network_nsg_ids_names': dbs['backup_network_nsg_ids_names'],
- 'backup_network_nsg_ids': str(', '.join(x for x in dbs['backup_network_nsg_ids'])) if dbs['backup_network_nsg_ids'] else "",
+ 'backup_network_nsg_ids': self.__csv_list_to_str(dbs['backup_network_nsg_ids']),
'memory_size_in_gbs': dbs['memory_size_in_gbs'],
'storage_volume_performance_mode': dbs['storage_volume_performance_mode'],
'time_zone': dbs['time_zone'],
@@ -6658,18 +6699,25 @@ def __csv_database_db_system(self, region_name, list_db_systems):
'backup_subnet': dbs['backup_subnet'],
'backup_subnet_name': dbs['backup_subnet_name'],
'backup_vcn_name': dbs['backup_vcn_name'],
- 'scan_ips': str(', '.join(x for x in dbs['scan_ips'])),
- 'vip_ips': str(', '.join(x for x in dbs['vip_ips'])),
- 'pdbs': str(', '.join(x['name'] for x in db['pdbs'])),
+ 'scan_ips': self.__csv_list_to_str(dbs['scan_ips']),
+ 'vip_ips': self.__csv_list_to_str(dbs['vip_ips']),
+ 'pdbs': self.__csv_list_to_str(db['pdbs'], 'name'),
'cluster_name': dbs['cluster_name'],
'vm_name': dbs['display_name'],
'time_created': dbs['time_created'][0:16],
'domain': dbs['domain'],
'auto_backup_enabled': db['auto_backup_enabled'],
- 'db_nodes': str(', '.join(x['desc'] for x in dbs['db_nodes'])),
+ 'last_failed_backup_timestamp': db['last_failed_backup_timestamp'],
+ 'last_backup_duration_in_seconds': db['last_backup_duration_in_seconds'],
+ 'recovery_window_in_days': db['db_backup_config']['recovery_window_in_days'] if 'db_backup_config' in db else "",
+ 'backup_destination_type': db['db_backup_config']['backup_destination_type'] if 'db_backup_config' in db else "",
+ 'auto_full_backup_day': db['db_backup_config']['auto_full_backup_day'] if 'db_backup_config' in db else "",
+ 'kms_key_id': db['kms_key_id'],
+ 'kms_key_version_id': db['kms_key_version_id'],
+ 'key_store_wallet_name': db['key_store_wallet_name'],
+ 'db_nodes': self.__csv_list_to_str(dbs['db_nodes'], 'desc'),
'freeform_tags': self.__get_freeform_tags(db['freeform_tags']),
'defined_tags': self.__get_defined_tags(db['defined_tags']),
- 'kms_key_id': db['kms_key_id'],
'vault_id': db['vault_id'],
'database_id': db['id'],
'id': db['id'],
@@ -6803,12 +6851,12 @@ def __csv_database_db_exascale(self, region_name, list_vaults):
'backup_subnet': vm['backup_subnet'],
'backup_subnet_name': vm['backup_subnet_name'],
'backup_vcn_name': vm['backup_vcn_name'],
- 'scan_ips': str(', '.join(x for x in vm['scan_ips'])),
- 'vip_ips': str(', '.join(x for x in vm['vip_ips'])),
+ 'scan_ips': self.__csv_list_to_str(vm['scan_ips']),
+ 'vip_ips': self.__csv_list_to_str(vm['vip_ips']),
'cluster_name': vm['cluster_name'],
'time_created': vm['time_created'][0:16],
'domain': vm['domain'],
- 'db_homes': str(', '.join(x['home'] for x in vm['db_homes'])),
+ 'db_homes': self.__csv_list_to_str(vm['db_homes'], 'home'),
'freeform_tags': self.__get_freeform_tags(vm['freeform_tags']),
'defined_tags': self.__get_defined_tags(vm['defined_tags']),
'id': vm['id'],
@@ -6853,15 +6901,23 @@ def __csv_database_db_exascale(self, region_name, list_vaults):
'backup_subnet': vm['backup_subnet'],
'backup_subnet_name': vm['backup_subnet_name'],
'backup_vcn_name': vm['backup_vcn_name'],
- 'scan_ips': str(', '.join(x for x in vm['scan_ips'])),
- 'vip_ips': str(', '.join(x for x in vm['vip_ips'])),
- 'pdbs': str(', '.join(x['name'] for x in db['pdbs'])),
+ 'scan_ips': self.__csv_list_to_str(vm['scan_ips']),
+ 'vip_ips': self.__csv_list_to_str(vm['vip_ips']),
+ 'pdbs': self.__csv_list_to_str(db['pdbs'], 'name'),
'cluster_name': vm['cluster_name'],
'vm_name': vm['display_name'],
'time_created': vm['time_created'][0:16],
'domain': vm['domain'],
'auto_backup_enabled': db['auto_backup_enabled'],
- 'db_nodes': str(', '.join(x['desc'] for x in vm['db_nodes'])),
+ 'last_failed_backup_timestamp': db['last_failed_backup_timestamp'],
+ 'last_backup_duration_in_seconds': db['last_backup_duration_in_seconds'],
+ 'recovery_window_in_days': db['db_backup_config']['recovery_window_in_days'] if 'db_backup_config' in db else "",
+ 'backup_destination_type': db['db_backup_config']['backup_destination_type'] if 'db_backup_config' in db else "",
+ 'auto_full_backup_day': db['db_backup_config']['auto_full_backup_day'] if 'db_backup_config' in db else "",
+ 'kms_key_id': db['kms_key_id'],
+ 'kms_key_version_id': db['kms_key_version_id'],
+ 'key_store_wallet_name': db['key_store_wallet_name'],
+ 'db_nodes': self.__csv_list_to_str(vm['db_nodes'], 'desc'),
'freeform_tags': self.__get_freeform_tags(db['freeform_tags']),
'defined_tags': self.__get_defined_tags(db['defined_tags']),
'database_id': db['id'],
@@ -6956,10 +7012,10 @@ def __csv_database_db_exadata(self, region_name, list_exa):
'customer_contacts': str(dbs['customer_contacts']),
'defined_file_system_configurations': str(dbs['defined_file_system_configurations']),
# End Added 7/29/2024
- 'db_servers': str(', '.join(x['desc'] for x in dbs['db_servers'])),
- 'db_servers_ids': str(', '.join(x['id'] for x in dbs['db_servers'])),
+ 'db_servers': self.__csv_list_to_str(dbs['db_servers'], 'desc'),
+ 'db_servers_ids': self.__csv_list_to_str(dbs['db_servers'], 'id'),
'cluster_count': len(dbs['vm_clusters']),
- 'cluster_names': str(', '.join(x['display_name'] for x in dbs['vm_clusters'])),
+ 'cluster_names': self.__csv_list_to_str(dbs['vm_clusters'], 'display_name'),
'time_created': dbs['time_created'],
'freeform_tags': self.__get_freeform_tags(dbs['freeform_tags']),
'defined_tags': self.__get_defined_tags(dbs['defined_tags']),
@@ -7002,8 +7058,8 @@ def __csv_database_db_exadata(self, region_name, list_exa):
'backup_subnet': vm['backup_subnet'],
'backup_subnet_name': vm['backup_subnet_name'],
'backup_vcn_name': vm['backup_vcn_name'],
- 'scan_ips': str(', '.join(x for x in vm['scan_ips'])),
- 'vip_ips': str(', '.join(x for x in vm['vip_ips'])),
+ 'scan_ips': self.__csv_list_to_str(vm['scan_ips']),
+ 'vip_ips': self.__csv_list_to_str(vm['vip_ips']),
'cluster_name': vm['cluster_name'],
'time_created': vm['time_created'][0:16],
'domain': vm['domain'],
@@ -7017,8 +7073,8 @@ def __csv_database_db_exadata(self, region_name, list_exa):
'scan_listener_port_tcp': vm['scan_listener_port_tcp'],
'file_system_configuration_details': str(vm['file_system_configuration_details']),
# End Added 7/29/2024
- 'db_nodes': str(', '.join(x['desc'] for x in vm['db_nodes'])),
- 'db_homes': str(', '.join(x['home'] for x in vm['db_homes'])),
+ 'db_nodes': self.__csv_list_to_str(vm['db_nodes'], 'desc'),
+ 'db_homes': self.__csv_list_to_str(vm['db_homes'], 'home'),
'freeform_tags': self.__get_freeform_tags(vm['freeform_tags']),
'defined_tags': self.__get_defined_tags(vm['defined_tags']),
'maintenance_window': dbs['maintenance_window']['display'] if dbs['maintenance_window'] else "",
@@ -7065,15 +7121,23 @@ def __csv_database_db_exadata(self, region_name, list_exa):
'backup_subnet': vm['backup_subnet'],
'backup_subnet_name': vm['backup_subnet_name'],
'backup_vcn_name': vm['backup_vcn_name'],
- 'scan_ips': str(', '.join(x for x in vm['scan_ips'])),
- 'vip_ips': str(', '.join(x for x in vm['vip_ips'])),
- 'pdbs': str(', '.join(x['name'] for x in db['pdbs'])),
+ 'scan_ips': self.__csv_list_to_str(vm['scan_ips']),
+ 'vip_ips': self.__csv_list_to_str(vm['vip_ips']),
+ 'pdbs': self.__csv_list_to_str(db['pdbs'], 'name'),
'cluster_name': vm['cluster_name'],
'vm_name': vm['display_name'],
'time_created': vm['time_created'][0:16],
'domain': vm['domain'],
'auto_backup_enabled': db['auto_backup_enabled'],
- 'db_nodes': str(', '.join(x['desc'] for x in vm['db_nodes'])),
+ 'last_failed_backup_timestamp': db['last_failed_backup_timestamp'],
+ 'last_backup_duration_in_seconds': db['last_backup_duration_in_seconds'],
+ 'recovery_window_in_days': db['db_backup_config']['recovery_window_in_days'] if 'db_backup_config' in db else "",
+ 'backup_destination_type': db['db_backup_config']['backup_destination_type'] if 'db_backup_config' in db else "",
+ 'auto_full_backup_day': db['db_backup_config']['auto_full_backup_day'] if 'db_backup_config' in db else "",
+ 'kms_key_id': db['kms_key_id'],
+ 'kms_key_version_id': db['kms_key_version_id'],
+ 'key_store_wallet_name': db['key_store_wallet_name'],
+ 'db_nodes': self.__csv_list_to_str(vm['db_nodes'], 'desc'),
'freeform_tags': self.__get_freeform_tags(db['freeform_tags']),
'defined_tags': self.__get_defined_tags(db['defined_tags']),
'database_id': db['id'],
@@ -7156,10 +7220,10 @@ def __csv_database_db_exacc(self, region_name, list_exa):
'ntp_server': dbs['ntp_server'],
'csi_number': dbs['csi_number'],
'node_count': len(dbs['db_servers']),
- 'db_servers': str(', '.join(x['desc'] for x in dbs['db_servers'])),
- 'db_servers_ids': str(', '.join(x['id'] for x in dbs['db_servers'])),
+ 'db_servers': self.__csv_list_to_str(dbs['db_servers'], 'desc'),
+ 'db_servers_ids': self.__csv_list_to_str(dbs['db_servers'], 'id'),
'cluster_count': len(dbs['vm_clusters']),
- 'cluster_names': str(', '.join(x['display_name'] for x in dbs['vm_clusters'])),
+ 'cluster_names': self.__csv_list_to_str(dbs['vm_clusters'], 'display_name'),
'time_created': dbs['time_created'],
'freeform_tags': self.__get_freeform_tags(dbs['freeform_tags']),
'defined_tags': self.__get_defined_tags(dbs['defined_tags']),
@@ -7207,8 +7271,8 @@ def __csv_database_db_exacc(self, region_name, list_exa):
'cluster_name': vm['display_name'],
'time_created': vm['time_created'][0:16],
'domain': "",
- 'db_nodes': str(', '.join(x['desc'] for x in vm['db_nodes'])),
- 'db_homes': str(', '.join(x['home'] for x in vm['db_homes'])),
+ 'db_nodes': self.__csv_list_to_str(vm['db_nodes'], 'desc'),
+ 'db_homes': self.__csv_list_to_str(vm['db_homes'], 'home'),
'maintenance_window': dbs['maintenance_window']['display'] if dbs['maintenance_window'] else "",
'last_maintenance_run': dbs['last_maintenance_run']['maintenance_display'] if dbs['last_maintenance_run'] else "",
'next_maintenance_run': dbs['next_maintenance_run']['maintenance_display'] if dbs['next_maintenance_run'] else "",
@@ -7259,13 +7323,20 @@ def __csv_database_db_exacc(self, region_name, list_exa):
'backup_vcn_name': "",
'scan_ips': "",
'vip_ips': "",
- 'pdbs': str(', '.join(x['name'] for x in db['pdbs'])),
+ 'pdbs': self.__csv_list_to_str(db['pdbs'], 'name'),
'cluster_name': vm['display_name'],
'vm_name': vm['display_name'],
'time_created': vm['time_created'][0:16],
'domain': "",
'auto_backup_enabled': db['auto_backup_enabled'],
- 'db_nodes': str(', '.join(x['desc'] for x in vm['db_nodes'])),
+ 'last_failed_backup_timestamp': db['last_failed_backup_timestamp'],
+ 'last_backup_duration_in_seconds': db['last_backup_duration_in_seconds'],
+ 'recovery_window_in_days': db['db_backup_config']['recovery_window_in_days'] if 'db_backup_config' in db else "",
+ 'backup_destination_type': db['db_backup_config']['backup_destination_type'] if 'db_backup_config' in db else "",
+ 'auto_full_backup_day': db['db_backup_config']['auto_full_backup_day'] if 'db_backup_config' in db else "",
+ 'kms_key_version_id': db['kms_key_version_id'],
+ 'key_store_wallet_name': db['key_store_wallet_name'],
+ 'db_nodes': self.__csv_list_to_str(vm['db_nodes'], 'desc'),
'kms_key_id': db['kms_key_id'],
'vault_id': db['vault_id'],
'freeform_tags': self.__get_freeform_tags(db['freeform_tags']),
@@ -7445,8 +7516,8 @@ def __csv_database_db_autonomous(self, region_name, databases):
'subnet_name': dbs['subnet_name'] if dbs['subnet_name'] != "None" else "",
'private_endpoint': dbs['private_endpoint'] if dbs['private_endpoint'] != "None" else "",
'private_endpoint_label': dbs['private_endpoint_label'] if dbs['private_endpoint_label'] != "None" else "",
- 'nsg_ids': dbs['nsg_ids'] if dbs['nsg_ids'] != "None" else "",
- 'nsg_names': str(', '.join(x for x in dbs['nsg_names'])),
+ 'nsg_ids': self.__csv_list_to_str(dbs['nsg_ids']),
+ 'nsg_names': self.__csv_list_to_str(dbs['nsg_names']),
'whitelisted_ips': dbs['whitelisted_ips'],
'service_console_url': dbs['service_console_url'],
'connection_strings': dbs['connection_strings'],
@@ -7590,6 +7661,7 @@ def __csv_database_db_autonomous_databases(self, region_name, databases):
'subnet_name': vm['subnet_name'],
'private_endpoint': db['private_endpoint'],
'private_endpoint_label': db['private_endpoint_label'],
+ # Adi - To Check NSG Variables
'nsg_ids': "",
'nsg_names': "",
'whitelisted_ips': db['whitelisted_ips'],
@@ -7824,15 +7896,15 @@ def __csv_database_postgresql(self, region_name, postgresql):
'shape': db['shape_full'],
'admin_username': db['admin_username'],
'storage_system_type': db['storage_system_type'],
- 'instances': str(', '.join(x['display_name'] for x in db['instances'])),
+ 'instances': self.__csv_list_to_str(db['instances'], 'display_name'),
'storage_is_regionally_durable': db['storage_is_regionally_durable'],
'storage_availability_domain': db['storage_availability_domain'],
'storage_iops': db['storage_iops'],
'network_subnet_id': db['network_subnet_id'],
'network_subnet_name': db['network_subnet_name'],
'network_primary_db_endpoint_private_ip': db['network_primary_db_endpoint_private_ip'],
- 'network_nsg_ids': str(', '.join(x for x in db['network_nsg_ids'])),
- 'network_nsg_names': str(', '.join(x for x in db['network_nsg_names'])),
+ 'network_nsg_ids': self.__csv_list_to_str(db['network_nsg_ids']),
+ 'network_nsg_names': self.__csv_list_to_str(db['network_nsg_names']),
'management_maintenance_window_start': db['management_maintenance_window_start'],
'management_backup_policy': db['management_backup_policy'],
'source_type': db['source_type'],
@@ -7936,7 +8008,7 @@ def __csv_database_nosql(self, region_name, nosqls):
self.__print_error("__csv_database_goldengate", e)
##########################################################################
- # __csv_datasafe
+ # __csv_datasafe_get_target_info
##########################################################################
def __csv_datasafe_get_target_info(self, targets, target_id):
try:
@@ -7971,8 +8043,8 @@ def __csv_datasafe(self, region_name, list_datasafe):
'lifecycle_state': target['lifecycle_state'],
'lifecycle_details': target['lifecycle_details'],
'time_created': target['time_created'],
- 'associated_resource_ids': str(','.join(x for x in target['associated_resource_ids'])),
- 'associated_resource_names': str(','.join(x for x in target['associated_resource_names'])),
+ 'associated_resource_ids': self.__csv_list_to_str(target['associated_resource_ids']),
+ 'associated_resource_names': self.__csv_list_to_str(target['associated_resource_names']),
'freeform_tags': self.__get_freeform_tags(target['freeform_tags']),
'defined_tags': self.__get_defined_tags(target['defined_tags']),
'global_ip_address': config['data_safe_nat_gateway_ip_address'],
@@ -8024,10 +8096,9 @@ def __csv_datasafe(self, region_name, list_datasafe):
'display_name': adt['display_name'],
'description': adt['description'],
'is_data_safe_service_account_excluded': adt['is_data_safe_service_account_excluded'],
-
'audit_policy_category': spc['audit_policy_category'],
'audit_policy_name': spc['audit_policy_name'],
- 'database_policy_names': str(','.join(x for x in spc['database_policy_names'])),
+ 'database_policy_names': self.__csv_list_to_str(spc['database_policy_names']),
'enable_status': spc['enable_status'],
'enabled_entities': spc['enabled_entities'],
'is_created': spc['is_created'],
@@ -8036,7 +8107,6 @@ def __csv_datasafe(self, region_name, list_datasafe):
'is_seeded_in_target': spc['is_seeded_in_target'],
'is_view_only': spc['is_view_only'],
'partially_enabled_msg': spc['partially_enabled_msg'],
-
'time_created': adt['time_created'],
'lifecycle_state': adt['lifecycle_state'],
'lifecycle_details': adt['lifecycle_details'],
@@ -8121,8 +8191,8 @@ def __csv_datasafe(self, region_name, list_datasafe):
'compartment_path': ds['compartment_path'],
'display_name': adt['display_name'],
'description': adt['description'],
- 'ignored_assessment_ids': str(','.join(x for x in adt['ignored_assessment_ids'])),
- 'ignored_targets': str(','.join(x for x in adt['ignored_targets'])),
+ 'ignored_assessment_ids': self.__csv_list_to_str(adt['ignored_assessment_ids']),
+ 'ignored_targets': self.__csv_list_to_str(adt['ignored_targets']),
'is_baseline': adt['is_baseline'],
'is_deviated_from_baseline': adt['is_deviated_from_baseline'],
'last_compared_baseline_id': adt['last_compared_baseline_id'],
@@ -8153,8 +8223,8 @@ def __csv_datasafe(self, region_name, list_datasafe):
'compartment_path': ds['compartment_path'],
'display_name': adt['display_name'],
'description': adt['description'],
- 'ignored_assessment_ids': str(','.join(x for x in adt['ignored_assessment_ids'])),
- 'ignored_target_ids': str(','.join(x for x in adt['ignored_target_ids'])),
+ 'ignored_assessment_ids': self.__csv_list_to_str(adt['ignored_assessment_ids']),
+ 'ignored_target_ids': self.__csv_list_to_str(adt['ignored_target_ids']),
'is_baseline': adt['is_baseline'],
'is_deviated_from_baseline': adt['is_deviated_from_baseline'],
'last_compared_baseline_id': adt['last_compared_baseline_id'],
@@ -8180,7 +8250,7 @@ def __csv_datasafe(self, region_name, list_datasafe):
self.csv_datasafe_security_assessment.append(arr)
except Exception as e:
- self.__print_error("__csv_datasafe:" + issue_location, e)
+ self.__print_error("__csv_datasafe: " + issue_location, e)
##########################################################################
# database
@@ -8251,17 +8321,18 @@ def __csv_limits_main(self, region_name, limits):
return
for lt in limits:
- data = {'region_name': region_name,
- 'scope_type': lt['scope_type'],
- 'availability_domain': lt['availability_domain'],
- 'name': lt['name'],
- 'description': lt['description'],
- 'limit_name': lt['limit_name'],
- 'value': lt['value'],
- 'used': lt['used'],
- 'available': lt['available'],
- 'id': self.tenant_name + ":" + lt['region_name'] + ":" + lt['scope_type'] + ":" + lt['availability_domain'] + ":" + lt['name'] + ":" + lt['limit_name']
- }
+ data = {
+ 'region_name': region_name,
+ 'scope_type': lt['scope_type'],
+ 'availability_domain': lt['availability_domain'],
+ 'name': lt['name'],
+ 'description': lt['description'],
+ 'limit_name': lt['limit_name'],
+ 'value': lt['value'],
+ 'used': lt['used'],
+ 'available': lt['available'],
+ 'id': self.tenant_name + ":" + lt['region_name'] + ":" + lt['scope_type'] + ":" + lt['availability_domain'] + ":" + lt['name'] + ":" + lt['limit_name']
+ }
self.csv_limits.append(data)
@@ -8366,7 +8437,7 @@ def __csv_core_compute_instances(self, region_name, instances):
# go over the vnics
if 'vnic' in instance:
- data['vnic_ids'] = str(', '.join(x['id'] for x in instance['vnic']))
+ data['vnic_ids'] = self.__csv_list_to_str(instance['vnic'], 'id')
vnic_num = 0
for vnic in instance['vnic']:
@@ -8387,15 +8458,15 @@ def __csv_core_compute_instances(self, region_name, instances):
data['boot_volume_encryption_in_transit_type'] = bv['encryption_in_transit_type']
if 'block_volume' in instance:
- data['block_volumes'] = str(', '.join(x['display_name'] for x in instance['block_volume']))
- data['block_volumes_ids'] = str(', '.join(x['id'] for x in instance['block_volume']))
- data['block_volumes_size_gb'] = str('+ '.join(x['size'] for x in instance['block_volume']))
- data['block_volumes_b_policy'] = str(', '.join(x['backup_policy'] for x in instance['block_volume']))
- data['block_volumes_attachment_type'] = str(', '.join(x['attachment_type'] for x in instance['block_volume']))
- data['block_volumes_transit_encryption'] = str(', '.join(x['is_pv_encryption_in_transit_enabled'] for x in instance['block_volume']))
- data['block_volumes_iscsi_login_state'] = str(', '.join(x['iscsi_login_state'] for x in instance['block_volume']))
- data['block_volumes_is_multipath'] = str(', '.join(x['is_multipath'] for x in instance['block_volume']))
- data['block_volumes_is_read_only'] = str(', '.join(x['is_read_only'] for x in instance['block_volume']))
+ data['block_volumes'] = self.__csv_list_to_str(instance['block_volume'], 'display_name')
+ data['block_volumes_ids'] = self.__csv_list_to_str(instance['block_volume'], 'id')
+ data['block_volumes_size_gb'] = self.__csv_list_to_str(instance['block_volume'], 'size')
+ data['block_volumes_b_policy'] = self.__csv_list_to_str(instance['block_volume'], 'backup_policy')
+ data['block_volumes_attachment_type'] = self.__csv_list_to_str(instance['block_volume'], 'attachment_type')
+ data['block_volumes_transit_encryption'] = self.__csv_list_to_str(instance['block_volume'], 'is_pv_encryption_in_transit_enabled')
+ data['block_volumes_iscsi_login_state'] = self.__csv_list_to_str(instance['block_volume'], 'iscsi_login_state')
+ data['block_volumes_is_multipath'] = self.__csv_list_to_str(instance['block_volume'], 'is_multipath')
+ data['block_volumes_is_read_only'] = self.__csv_list_to_str(instance['block_volume'], 'is_read_only')
bv_total_size = 0
for bv in instance['block_volume']:
@@ -8652,65 +8723,68 @@ def __csv_load_balancer_details(self, region_name, load_balance_obj):
log_access = log['name']
# load balancers
- data = {'region_name': region_name,
+ data = {
+ 'region_name': region_name,
+ 'compartment_name': lb['compartment_name'],
+ 'compartment_path': lb['compartment_path'],
+ 'name': lb['display_name'],
+ 'status': lb['status'],
+ 'shape': lb['shape_name'],
+ 'type': ("Private" if lb['is_private'] else "Public"),
+ 'is_preserve_source_destination': "",
+ 'nlb_ip_version': "",
+ 'is_symmetric_hash_enabled': "",
+ 'ip_addresses': self.__csv_list_to_str(lb['ips']),
+ 'listeners': self.__csv_list_to_str(lb['listeners'], 'desc'),
+ 'log_errors': log_errors,
+ 'log_access': log_access,
+ 'logs': self.__csv_list_to_str(load_balance_obj['logs'], 'name'),
+ 'subnets': self.__csv_list_to_str(lb['subnets']),
+ 'nsg_ids': self.__csv_list_to_str(lb['nsg_ids']),
+ 'nsg_names': self.__csv_list_to_str(lb['nsg_names']),
+ 'time_created': lb['time_created'],
+ 'lb_certificates': lb['certificates'],
+ 'ssl_cipher_suites': self.__csv_list_to_str(lb['ssl_cipher_suites']),
+ 'routing_policies': self.__csv_list_to_str(lb['routing_policies']),
+ 'freeform_tags': self.__get_freeform_tags(lb['freeform_tags']),
+ 'defined_tags': self.__get_defined_tags(lb['defined_tags']),
+ 'loadbalancer_id': lb['id'],
+ 'id': lb['id']
+ }
+ self.csv_load_balancer.append(data)
+ self.__csv_add_service(data, "Load Balancer")
+
+ # listeners
+ for listener in lb['listeners']:
+ data = {
+ 'region_name': region_name,
'compartment_name': lb['compartment_name'],
'compartment_path': lb['compartment_path'],
'name': lb['display_name'],
'status': lb['status'],
'shape': lb['shape_name'],
'type': ("Private" if lb['is_private'] else "Public"),
- 'is_preserve_source_destination': "",
- 'nlb_ip_version': "",
- 'is_symmetric_hash_enabled': "",
- 'ip_addresses': str(', '.join(x for x in lb['ips'])),
- 'listeners': str(', '.join(x['desc'] for x in lb['listeners'])),
+ 'ip_addresses': self.__csv_list_to_str(lb['ips']),
'log_errors': log_errors,
'log_access': log_access,
- 'logs': str(', '.join(x['name'] for x in load_balance_obj['logs'])),
- 'subnets': str(', '.join(x for x in lb['subnets'])),
- 'nsg_names': lb['nsg_names'],
+ 'logs': self.__csv_list_to_str(load_balance_obj['logs'], 'name'),
+ 'subnets': self.__csv_list_to_str(lb['subnets']),
+ 'listener_name': listener['id'],
+ 'listener_port': listener['port'],
+ 'listener_def_bs': listener['default_backend_set_name'],
+ 'listener_ssl': listener['ssl_configuration'],
+ 'listener_host': self.__csv_list_to_str(listener['hostname_names']),
+ 'listener_path': listener['path_route_set_name'],
+ 'listener_rule': self.__csv_list_to_str(listener['rule_set_names']),
'time_created': lb['time_created'],
'lb_certificates': lb['certificates'],
- 'ssl_cipher_suites': str(', '.join(x for x in lb['ssl_cipher_suites'])),
- 'routing_policies': str(', '.join(x for x in lb['routing_policies'])),
+ 'ssl_cipher_suites': self.__csv_list_to_str(lb['ssl_cipher_suites']),
+ 'routing_policies': self.__csv_list_to_str(lb['routing_policies']),
'freeform_tags': self.__get_freeform_tags(lb['freeform_tags']),
'defined_tags': self.__get_defined_tags(lb['defined_tags']),
'loadbalancer_id': lb['id'],
- 'id': lb['id']
- }
- self.csv_load_balancer.append(data)
- self.__csv_add_service(data, "Load Balancer")
-
- # listeners
- for listener in lb['listeners']:
- data = {'region_name': region_name,
- 'compartment_name': lb['compartment_name'],
- 'compartment_path': lb['compartment_path'],
- 'name': lb['display_name'],
- 'status': lb['status'],
- 'shape': lb['shape_name'],
- 'type': ("Private" if lb['is_private'] else "Public"),
- 'ip_addresses': str(', '.join(x for x in lb['ips'])),
- 'log_errors': log_errors,
- 'log_access': log_access,
- 'logs': str(', '.join(x['name'] for x in load_balance_obj['logs'])),
- 'subnets': str(', '.join(x for x in lb['subnets'])),
- 'listener_name': listener['id'],
- 'listener_port': listener['port'],
- 'listener_def_bs': listener['default_backend_set_name'],
- 'listener_ssl': listener['ssl_configuration'],
- 'listener_host': str(', '.join(x for x in listener['hostname_names'])),
- 'listener_path': listener['path_route_set_name'],
- 'listener_rule': str(', '.join(x for x in listener['rule_set_names'])),
- 'time_created': lb['time_created'],
- 'lb_certificates': lb['certificates'],
- 'ssl_cipher_suites': str(', '.join(x for x in lb['ssl_cipher_suites'])),
- 'routing_policies': str(', '.join(x for x in lb['routing_policies'])),
- 'freeform_tags': self.__get_freeform_tags(lb['freeform_tags']),
- 'defined_tags': self.__get_defined_tags(lb['defined_tags']),
- 'loadbalancer_id': lb['id'],
- 'id': lb['id'] + ":" + listener['id']
- }
+ 'id': lb['id'] + ":" + listener['id']
+ }
self.csv_load_balancer_listeners.append(data)
except Exception as e:
@@ -8738,15 +8812,16 @@ def __csv_network_load_balancer_main(self, region_name, network_load_balancers):
'status': lb['status'],
'time_created': lb['time_created'],
'time_updated': lb['time_updated'],
- 'type': ("Private" if lb['is_private'] else "Public"),
+ 'type': "Private" if lb['is_private'] else "Public",
'is_preserve_source_destination': lb['is_preserve_source_destination'],
'nlb_ip_version': lb['nlb_ip_version'],
'is_symmetric_hash_enabled': lb['is_symmetric_hash_enabled'],
'subnets': lb['subnet_name'],
- 'nsg_names': lb['nsg_names'],
- 'ip_addresses': str(', '.join(x for x in lb['ips'])),
+ 'nsg_ids': self.__csv_list_to_str(lb['nsg_ids']),
+ 'nsg_names': self.__csv_list_to_str(lb['nsg_names']),
+ 'ip_addresses': self.__csv_list_to_str(lb['ips']),
'loadbalancer_id': lb['id'],
- 'listeners': str(', '.join(x['csvname'] for x in lb['listeners'])),
+ 'listeners': self.__csv_list_to_str(lb['listeners'], 'csvname'),
'freeform_tags': self.__get_freeform_tags(lb['freeform_tags']),
'defined_tags': self.__get_defined_tags(lb['defined_tags']),
'id': lb['id']
@@ -8765,7 +8840,7 @@ def __csv_network_load_balancer_main(self, region_name, network_load_balancers):
'shape': 'Network',
'type': ("Private" if lb['is_private'] else "Public"),
'subnets': lb['subnet_name'],
- 'ip_addresses': str(', '.join(x for x in lb['ips'])),
+ 'ip_addresses': self.__csv_list_to_str(lb['ips']),
'listener_name': listener['id'],
'listener_port': listener['port'],
'listener_def_bs': listener['default_backend_set_name'],
@@ -8786,7 +8861,7 @@ def __csv_network_load_balancer_main(self, region_name, network_load_balancers):
'status': lb['status'],
'shape': 'Network Load Balancer',
'type': ("Private" if lb['is_private'] else "Public"),
- 'ip_addresses': str(', '.join(x for x in lb['ips'])),
+ 'ip_addresses': self.__csv_list_to_str(lb['ips']),
'subnets': lb['subnet_name'],
'bs_name': bs['name'],
'bs_desc': bs['name'],
@@ -8819,37 +8894,38 @@ def __csv_apigw(self, region_name, apigw):
if 'access' in log['name']:
log_access = log['name']
- data = {'region_name': region_name,
- 'compartment_name': dp['compartment_name'],
- 'compartment_path': dp['compartment_path'],
- 'gw_name': api['display_name'],
- 'gw_endpoint_type': api['endpoint_type'],
- 'gw_hostname': api['hostname'],
- 'gw_subnet_id': api['subnet_id'],
- 'gw_subnet_name': api['subnet_name'],
- 'gw_time_created': api['time_created'],
- 'gw_time_updated': api['time_updated'],
- 'gw_lifecycle_state': api['lifecycle_state'],
- 'gw_nsg_ids': api['nsg_ids'],
- 'gw_nsg_names': api['nsg_names'],
- 'gw_certificate_id': api['certificate_id'],
- 'gw_freeform_tags': self.__get_freeform_tags(api['freeform_tags']),
- 'gw_defined_tags': self.__get_defined_tags(api['defined_tags']),
- 'dp_display_name': dp['display_name'],
- 'path_prefix': dp['path_prefix'],
- 'endpoint': dp['endpoint'],
- 'lifecycle_state': dp['lifecycle_state'],
- 'time_created': dp['time_created'],
- 'time_updated': dp['time_updated'],
- 'freeform_tags': self.__get_freeform_tags(dp['freeform_tags']),
- 'defined_tags': self.__get_defined_tags(dp['defined_tags']),
- 'log_execution': log_execution,
- 'log_access': log_access,
- 'logs': str(', '.join(x['name'] for x in dp['logs'])),
- 'dp_id': dp['id'],
- 'api_id': api['id'],
- 'id': api['id']
- }
+ data = {
+ 'region_name': region_name,
+ 'compartment_name': dp['compartment_name'],
+ 'compartment_path': dp['compartment_path'],
+ 'gw_name': api['display_name'],
+ 'gw_endpoint_type': api['endpoint_type'],
+ 'gw_hostname': api['hostname'],
+ 'gw_subnet_id': api['subnet_id'],
+ 'gw_subnet_name': api['subnet_name'],
+ 'gw_time_created': api['time_created'],
+ 'gw_time_updated': api['time_updated'],
+ 'gw_lifecycle_state': api['lifecycle_state'],
+ 'gw_nsg_ids': self.__csv_list_to_str(api['nsg_ids']),
+ 'gw_nsg_names': api['nsg_names'],
+ 'gw_certificate_id': api['certificate_id'],
+ 'gw_freeform_tags': self.__get_freeform_tags(api['freeform_tags']),
+ 'gw_defined_tags': self.__get_defined_tags(api['defined_tags']),
+ 'dp_display_name': dp['display_name'],
+ 'path_prefix': dp['path_prefix'],
+ 'endpoint': dp['endpoint'],
+ 'lifecycle_state': dp['lifecycle_state'],
+ 'time_created': dp['time_created'],
+ 'time_updated': dp['time_updated'],
+ 'freeform_tags': self.__get_freeform_tags(dp['freeform_tags']),
+ 'defined_tags': self.__get_defined_tags(dp['defined_tags']),
+ 'log_execution': log_execution,
+ 'log_access': log_access,
+ 'logs': self.__csv_list_to_str(dp['logs'], 'name'),
+ 'dp_id': dp['id'],
+ 'api_id': api['id'],
+ 'id': api['id']
+ }
self.csv_apigw.append(data)
self.__csv_add_service(data, "API Gateway", col_name="gw_name")
@@ -8880,27 +8956,28 @@ def __csv_load_balancer_backendset(self, region_name, load_balance_obj):
if 'desc' in bs['ssl_cert']:
ssl_cert = bs['ssl_cert']['desc']
- data = {'region_name': region_name,
- 'compartment_name': lb['compartment_name'],
- 'compartment_path': lb['compartment_path'],
- 'name': lb['display_name'],
- 'status': lb['status'],
- 'shape': lb['shape_name'],
- 'type': ("Private" if lb['is_private'] else "Public"),
- 'ip_addresses': str(', '.join(x for x in lb['ips'])),
- 'subnets': str(', '.join(x for x in lb['subnets'])),
- 'bs_name': bs['name'],
- 'bs_desc': bs['desc'],
- 'bs_status': bs['status'],
- 'health_check': bs['health_check']['desc1'] + " " + bs['health_check']['desc2'],
- 'session_persistence': session_persistence,
- 'ssl_cert': ssl_cert,
- 'backend_name': backend['name'],
- 'backend': backend['desc'],
- 'backend_ip': backend['ip_address'] + ":" + backend['port'],
- 'loadbalancer_id': lb['id'],
- 'id': lb['id'] + ":" + bs['name'] + ":" + backend['name'] + ":" + backend['ip_address'] + ":" + backend['port']
- }
+ data = {
+ 'region_name': region_name,
+ 'compartment_name': lb['compartment_name'],
+ 'compartment_path': lb['compartment_path'],
+ 'name': lb['display_name'],
+ 'status': lb['status'],
+ 'shape': lb['shape_name'],
+ 'type': ("Private" if lb['is_private'] else "Public"),
+ 'ip_addresses': self.__csv_list_to_str(lb['ips']),
+ 'subnets': self.__csv_list_to_str(lb['subnets']),
+ 'bs_name': bs['name'],
+ 'bs_desc': bs['desc'],
+ 'bs_status': bs['status'],
+ 'health_check': bs['health_check']['desc1'] + " " + bs['health_check']['desc2'],
+ 'session_persistence': session_persistence,
+ 'ssl_cert': ssl_cert,
+ 'backend_name': backend['name'],
+ 'backend': backend['desc'],
+ 'backend_ip': backend['ip_address'] + ":" + backend['port'],
+ 'loadbalancer_id': lb['id'],
+ 'id': lb['id'] + ":" + bs['name'] + ":" + backend['name'] + ":" + backend['ip_address'] + ":" + backend['port']
+ }
self.csv_load_balancer_bs.append(data)
except Exception as e:
@@ -8958,7 +9035,7 @@ def __csv_file_storage_main(self, region_name, file_storage):
ex_mount_target = ex['mount_target']
if ex_mount_target:
for mnt in ex_mount_target:
- ip_to_add = str(','.join(x for x in mnt['private_ip_ids']))
+ ip_to_add = self.__csv_list_to_str(mnt['private_ip_ids'])
if ip_to_add not in mount_ips:
mount_ips += ip_to_add + ","
@@ -8975,7 +9052,7 @@ def __csv_file_storage_main(self, region_name, file_storage):
'exports': exports,
'export_options': options,
'mount_ips': mount_ips,
- 'snapshots': str(','.join(x for x in fs['snapshots'])),
+ 'snapshots': self.__csv_list_to_str(fs['snapshots']),
'freeform_tags': self.__get_freeform_tags(fs['freeform_tags']),
'defined_tags': self.__get_defined_tags(fs['defined_tags'])
}
@@ -9023,7 +9100,7 @@ def __csv_object_storage_main(self, region_name, object_storage):
'error_message': ar['error_message'],
'freeform_tags': self.__get_freeform_tags(ar['freeform_tags']),
'defined_tags': self.__get_defined_tags(ar['defined_tags']),
- 'logs': str(', '.join(x['name'] for x in ar['logs']))
+ 'logs': self.__csv_list_to_str(ar['logs'], 'name')
}
self.csv_object_storage_buckets.append(data)
@@ -9296,8 +9373,8 @@ def __csv_security_cloud_guard(self, region_name, cloud_guards):
'target_resource_name': ar['target_resource_name'],
'inherited_by_compartments': ar['inherited_by_compartments'],
'inherited_by_compartments_names': ar['inherited_by_compartments_names'],
- 'target_detector_recipes': str(', '.join(x['display_name'] for x in ar['target_detector_recipes'])),
- 'target_responder_recipes': str(', '.join(x['display_name'] for x in ar['target_responder_recipes'])),
+ 'target_detector_recipes': self.__csv_list_to_str(ar['target_detector_recipes'], 'display_name'),
+ 'target_responder_recipes': self.__csv_list_to_str(ar['target_responder_recipes'], 'display_name'),
'target_detector_rules': "",
'target_responder_rules': "",
'recipe_count': ar['recipe_count'],
@@ -9315,7 +9392,7 @@ def __csv_security_cloud_guard(self, region_name, cloud_guards):
for dt in ar['target_detector_recipes']:
for rule in dt['effective_detector_rules']:
arrrules.append(rule)
- data['target_detector_rules'] = str(', '.join(x for x in list(set(arrrules))))
+ data['target_detector_rules'] = self.__csv_list_to_str(list(set(arrrules)))
# target_detector_rules
if ar['target_responder_recipes']:
@@ -9323,7 +9400,7 @@ def __csv_security_cloud_guard(self, region_name, cloud_guards):
for dt in ar['target_responder_recipes']:
for rule in dt['effective_responder_rules']:
arrrules.append(rule)
- data['target_responder_rules'] = str(', '.join(x for x in list(set(arrrules))))
+ data['target_responder_rules'] = self.__csv_list_to_str(list(set(arrrules)))
self.csv_security_cloud_guard.append(data)
@@ -9466,7 +9543,7 @@ def __csv_container(self, region_name, containers):
'kubernetes_version': ar['kubernetes_version'],
'compartment_id': ar['compartment_id'],
'endpoint_is_public_ip_enabled': ar['endpoint_is_public_ip_enabled'],
- 'endpoint_nsg_ids': ar['endpoint_nsg_ids'],
+ 'endpoint_nsg_ids': self.__csv_list_to_str(ar['endpoint_nsg_ids']),
'endpoint_nsg_names': ar['endpoint_nsg_names'],
'endpoint_subnet_id': ar['endpoint_subnet_id'],
'endpoint_subnet_name': ar['endpoint_subnet_name'],
@@ -9517,8 +9594,8 @@ def __csv_container(self, region_name, containers):
'freeform_tags': self.__get_freeform_tags(nd['freeform_tags']),
'defined_tags': self.__get_defined_tags(nd['defined_tags']),
'vcn': ar['vcn_name'],
- 'subnets': str(', '.join(x for x in nd['subnets'])),
- 'subnet_ids': str(', '.join(x for x in nd['subnet_ids'])),
+ 'subnets': self.__csv_list_to_str(nd['subnets']),
+ 'subnet_ids': self.__csv_list_to_str(nd['subnet_ids']),
'container_id': ar['id'],
'node_pool_id': nd['id'],
'vcn_id': ar['vcn_id'],
@@ -9841,15 +9918,16 @@ def __csv_functions(self, region_name, functions_apps):
'compartment_path': ar['compartment_path'],
'name': ar['display_name'],
'lifecycle_state': ar['lifecycle_state'],
- 'subnets': str(', '.join(x for x in ar['subnets'])),
+ 'subnets': self.__csv_list_to_str(ar['subnets']),
'network_security_group_names': ar['network_security_group_names'],
+ 'network_security_group_ids': self.__csv_list_to_str(ar['network_security_group_ids']),
'shape': ar['shape'],
'trace_config_is_enabled': ar['trace_config_is_enabled'],
'trace_config_domain_id': ar['trace_config_domain_id'],
'image_policy_is_enabled': ar['image_policy_is_enabled'],
'time_created': ar['time_created'],
'time_updated': ar['time_updated'],
- 'functions': str(', '.join(x['display_name'] for x in ar['functions'])),
+ 'functions': self.__csv_list_to_str(ar['functions'], 'display_name'),
'freeform_tags': self.__get_freeform_tags(ar['freeform_tags']),
'defined_tags': self.__get_defined_tags(ar['defined_tags']),
'id': ar['id']
@@ -9866,8 +9944,9 @@ def __csv_functions(self, region_name, functions_apps):
'app_name': ar['display_name'],
'name': fn['display_name'],
'lifecycle_state': fn['lifecycle_state'],
- 'subnets': str(', '.join(x for x in ar['subnets'])),
+ 'subnets': self.__csv_list_to_str(ar['subnets']),
'network_security_group_names': ar['network_security_group_names'],
+ 'network_security_group_ids': self.__csv_list_to_str(ar['network_security_group_ids']),
'shape': fn['shape'],
'image': fn['image'],
'image_digest': fn['image_digest'],
@@ -10140,7 +10219,7 @@ def __csv_paas_ocvs(self, region_name, services):
'time_updated': ar['time_updated'],
'lifecycle_state': ar['lifecycle_state'],
'cluster_query_error': ar['cluster_query_error'],
- 'clusters': str(', '.join(x['display_name'] for x in ar['clusters'])),
+ 'clusters': self.__csv_list_to_str(ar['clusters'], 'display_name'),
'freeform_tags': self.__get_freeform_tags(ar['freeform_tags']),
'defined_tags': self.__get_defined_tags(ar['defined_tags']),
'info': "ocpus:" + str(ar['sddc_ocpus']),
@@ -10641,8 +10720,8 @@ def __csv_monitor_alarms(self, region_name, alarms):
'namespace': ar['namespace'],
'query': ar['query'],
'severity': ar['severity'],
- 'destinations': str(', '.join(x for x in ar['destinations'])),
- 'destinations_names': str(', '.join(x for x in ar['destinations_names'])),
+ 'destinations': self.__csv_list_to_str(ar['destinations']),
+ 'destinations_names': self.__csv_list_to_str(ar['destinations_names']),
'is_enabled': ar['is_enabled'],
'freeform_tags': self.__get_freeform_tags(ar['freeform_tags']),
'defined_tags': self.__get_defined_tags(ar['defined_tags']),
diff --git a/examples/showoci/showoci_service.py b/examples/showoci/showoci_service.py
index 4c7369f411..58e71027aa 100644
--- a/examples/showoci/showoci_service.py
+++ b/examples/showoci/showoci_service.py
@@ -39,7 +39,7 @@
# class ShowOCIService
##########################################################################
class ShowOCIService(object):
- version = "24.11.12"
+ version = "24.12.10"
oci_compatible_version = "2.129.4"
thread_lock = threading.Lock()
collection_ljust = 40
@@ -798,6 +798,20 @@ def get_value(self, in_value, trim_date=False):
except Exception as e:
self.__print_error(e)
+ ##################################################################################
+ # get values
+ ##################################################################################
+ def get_values(self, v):
+ try:
+ if v is None:
+ return []
+ n = []
+ for x in v:
+ n.append(self.get_value(x))
+ return n
+ except Exception as e:
+ self.__print_error(e)
+
##########################################################################
# get tenancy id from file or override
##########################################################################
@@ -1627,7 +1641,7 @@ def __load_section_identity_main(self):
# if to read users and groups from the old APIs
if self.flags.read_identity_old:
- print("\nIdentity Old API (Users and Groups) as requesed...")
+ print("\nIdentity Old API (Users and Groups) as requested...")
self.__load_identity_users_groups(identity, tenancy_id)
self.__load_identity_dynamic_groups(identity, tenancy_id)
self.__load_identity_providers(identity, tenancy_id)
@@ -1803,7 +1817,7 @@ def build_compartments_nested(identity_client, cid, path):
'id': str(c.id),
'name': str(c.name),
'description': self.get_value(c.description),
- 'time_created': self.get_value(c.time_created),
+ 'time_created': self.get_date(c.time_created),
'is_accessible': self.get_value(c.is_accessible),
'lifecycle_state': self.get_value(c.lifecycle_state),
'inactive_status': self.get_value(c.inactive_status),
@@ -1828,7 +1842,7 @@ def build_compartments_nested(identity_client, cid, path):
'id': str(tenc.id),
'name': str(tenc.name),
'description': self.get_value(tenc.description),
- 'time_created': self.get_value(tenc.time_created),
+ 'time_created': self.get_date(tenc.time_created),
'is_accessible': self.get_value(tenc.is_accessible),
'lifecycle_state': 'ACTIVE',
'inactive_status': "",
@@ -1909,7 +1923,7 @@ def __load_identity_single_compartments(self, identity):
'id': str(compartment.id),
'name': str(compartment.name),
'description': self.get_value(compartment.description),
- 'time_created': self.get_value(compartment.time_created),
+ 'time_created': self.get_date(compartment.time_created),
'is_accessible': self.get_value(compartment.is_accessible),
'lifecycle_state': self.get_value(compartment.lifecycle_state),
'inactive_status': self.get_value(compartment.inactive_status),
@@ -2019,7 +2033,7 @@ def __load_identity_users_groups(self, identity, tenancy_id):
'is_mfa_activated': self.get_value(user.is_mfa_activated),
'lifecycle_state': self.get_value(user.lifecycle_state),
'inactive_status': self.get_value(user.inactive_status),
- 'time_created': self.get_value(user.time_created),
+ 'time_created': self.get_date(user.time_created),
'identity_provider_id': "",
'identity_provider_name': "",
'email': self.get_value(user.email),
@@ -2094,7 +2108,7 @@ def __load_identity_user_credentials_apikey(self, identity, user):
'id': api_key.key_id,
'inactive_status': self.get_value(api_key.inactive_status),
'lifecycle_state': self.get_value(api_key.lifecycle_state),
- 'time_created': self.get_value(api_key.time_created)
+ 'time_created': self.get_date(api_key.time_created)
})
# return the data
@@ -2138,7 +2152,7 @@ def __load_identity_user_credentials_token(self, identity, user):
'description': token.description,
'lifecycle_state': self.get_value(token.lifecycle_state),
'inactive_status': self.get_value(token.inactive_status),
- 'time_created': self.get_value(token.time_created),
+ 'time_created': self.get_date(token.time_created),
'time_expires': self.get_value(token.time_expires),
'token': token.token
})
@@ -2181,7 +2195,7 @@ def __load_identity_user_credentials_secret(self, identity, user):
'display_name': secret.display_name,
'lifecycle_state': self.get_value(secret.lifecycle_state),
'inactive_status': self.get_value(secret.inactive_status),
- 'time_created': self.get_value(secret.time_created),
+ 'time_created': self.get_date(secret.time_created),
'time_expires': self.get_value(secret.time_expires)
})
return datausersecretkey
@@ -2222,8 +2236,8 @@ def __load_identity_user_credentials_smtp(self, identity, user):
'description': smtp_creds.description,
'lifecycle_state': self.get_value(smtp_creds.lifecycle_state),
'inactive_status': self.get_value(smtp_creds.inactive_status),
- 'time_created': self.get_value(smtp_creds.time_created),
- 'time_expires': self.get_value(smtp_creds.time_expires),
+ 'time_created': self.get_date(smtp_creds.time_created),
+ 'time_expires': self.get_date(smtp_creds.time_expires),
'username': smtp_creds.username
})
@@ -2348,7 +2362,7 @@ def __load_identity_providers(self, identity, tenancy_id):
'domain_name': "",
'oci_group_id': self.get_value(ig.group_id),
'oci_group_name': "",
- 'time_created': self.get_value(ig.time_created, trim_date=True),
+ 'time_created': self.get_date(ig.time_created),
'lifecycle_state': self.get_value(ig.lifecycle_state)
})
@@ -2510,7 +2524,7 @@ def __load_identity_network_sources(self, identity, tenancy_id):
'virtual_source_list': vcn_list,
'public_source_list': ns.public_source_list,
'services': ns.services,
- 'time_created': self.get_value(ns.time_created, trim_date=True),
+ 'time_created': self.get_date(ns.time_created),
'defined_tags': [] if ns.defined_tags is None else ns.defined_tags,
'freeform_tags': [] if ns.freeform_tags is None else ns.freeform_tags
})
@@ -2560,7 +2574,7 @@ def __load_identity_cost_tracking_tags(self, identity, tenancy_id):
'name': str(tag.name),
'description': self.get_value(tag.description),
'is_retired': self.get_value(tag.is_retired),
- 'time_created': self.get_value(tag.time_created),
+ 'time_created': self.get_date(tag.time_created),
'is_cost_tracking': self.get_value(tag.is_cost_tracking)
}
data.append(dataval)
@@ -2619,7 +2633,7 @@ def __load_identity_tag_namespace(self, identity):
'description': self.get_value(tag.description),
'is_retired': self.get_value(tag.is_retired),
'lifecycle_state': self.get_value(tag.lifecycle_state),
- 'time_created': self.get_value(tag.time_created),
+ 'time_created': self.get_date(tag.time_created),
'defined_tags': [] if tag.defined_tags is None else tag.defined_tags,
'freeform_tags': [] if tag.freeform_tags is None else tag.freeform_tags
}
@@ -2992,7 +3006,7 @@ def __load_core_network_vcn(self, virtual_network, compartments):
'default_route_table_id': self.get_value(vcn.default_route_table_id),
'default_security_list_id': self.get_value(vcn.default_security_list_id),
'dns_label': self.get_value(vcn.dns_label),
- 'time_created': self.get_value(vcn.time_created),
+ 'time_created': self.get_date(vcn.time_created),
'vcn_domain_name': self.get_value(vcn.vcn_domain_name),
'compartment_name': str(compartment['name']),
'compartment_path': str(compartment['path']),
@@ -3062,25 +3076,27 @@ def __load_core_network_vlan(self, virtual_network, compartments):
continue
for vlan in vlans:
- val = {'id': str(vlan.id),
- 'vlan': str(vlan.vlan_tag) + " - " + str(vlan.cidr_block) + " - " + str(vlan.display_name),
- 'availability_domain': self.get_value(vlan.availability_domain),
- 'cidr_block': self.get_value(vlan.cidr_block),
- 'vlan_tag': self.get_value(vlan.vlan_tag),
- 'display_name': self.get_value(vlan.display_name),
- 'time_created': self.get_value(vlan.time_created),
- 'lifecycle_state': self.get_value(vlan.lifecycle_state),
- 'nsg_ids': vlan.nsg_ids,
- 'route_table_id': self.get_value(vlan.route_table_id),
- 'vcn_id': self.get_value(vlan.vcn_id),
- 'compartment_name': str(compartment['name']),
- 'compartment_path': str(compartment['path']),
- 'compartment_id': str(compartment['id']),
- 'defined_tags': [] if vlan.defined_tags is None else vlan.defined_tags,
- 'freeform_tags': [] if vlan.freeform_tags is None else vlan.freeform_tags,
- 'region_name': str(self.config['region'])
- }
+ val = {
+ 'id': self.get_value(vlan.id),
+ 'vlan': f'{str(vlan.vlan_tag)} - {str(vlan.cidr_block)} - {str(vlan.display_name)}',
+ 'availability_domain': self.get_value(vlan.availability_domain),
+ 'cidr_block': self.get_value(vlan.cidr_block),
+ 'vlan_tag': self.get_value(vlan.vlan_tag),
+ 'display_name': self.get_value(vlan.display_name),
+ 'time_created': self.get_date(vlan.time_created),
+ 'lifecycle_state': self.get_value(vlan.lifecycle_state),
+ 'nsg_ids': self.get_values(vlan.nsg_ids),
+ 'nsg_names': self.__load_core_network_get_nsg_names(vlan.nsg_ids),
+ 'route_table_id': self.get_value(vlan.route_table_id),
+ 'vcn_id': self.get_value(vlan.vcn_id),
+ 'compartment_name': str(compartment['name']),
+ 'compartment_path': str(compartment['path']),
+ 'compartment_id': str(compartment['id']),
+ 'defined_tags': [] if vlan.defined_tags is None else vlan.defined_tags,
+ 'freeform_tags': [] if vlan.freeform_tags is None else vlan.freeform_tags,
+ 'region_name': str(self.config['region'])
+ }
data.append(val)
cnt += 1
@@ -3151,7 +3167,7 @@ def __load_core_network_igw(self, virtual_network, compartments):
'name': str(igw.display_name),
'is_enabled': self.get_value(igw.is_enabled),
'route_table_id': self.get_value(igw.route_table_id),
- 'time_created': self.get_value(igw.time_created),
+ 'time_created': self.get_date(igw.time_created),
'defined_tags': [] if igw.defined_tags is None else igw.defined_tags,
'freeform_tags': [] if igw.freeform_tags is None else igw.freeform_tags,
'compartment_name': str(compartment['name']),
@@ -3232,7 +3248,7 @@ def __load_core_network_lpg(self, virtual_network, compartments):
'vcn_id': str(lpg.vcn_id),
'name': str(lpg.peering_status).ljust(8) + " - " + str(lpg.display_name) + str(cidr),
'peering_status': self.get_value(lpg.peering_status),
- 'time_created': self.get_value(lpg.time_created),
+ 'time_created': self.get_date(lpg.time_created),
'display_name': self.get_value(lpg.display_name),
'peer_advertised_cidr': self.get_value(lpg.peer_advertised_cidr),
'is_cross_tenancy_peering': self.get_value(lpg.is_cross_tenancy_peering),
@@ -3314,7 +3330,7 @@ def __load_core_network_rpc(self, virtual_network, compartments):
val = {'id': str(rpc.id), 'peer_id': str(rpc.peer_id),
'drg_id': self.get_value(rpc.drg_id),
'name': self.get_value(rpc.display_name),
- 'time_created': self.get_value(rpc.time_created),
+ 'time_created': self.get_date(rpc.time_created),
'is_cross_tenancy_peering': str(rpc.is_cross_tenancy_peering),
'peer_region_name': self.get_value(rpc.peer_region_name),
'peer_tenancy_id': self.get_value(rpc.peer_tenancy_id),
@@ -3515,7 +3531,7 @@ def __load_core_network_dhcpop(self, virtual_network, compartments):
val = {'id': str(dhcp.id),
'vcn_id': self.get_value(dhcp.vcn_id),
'name': self.get_value(dhcp.display_name),
- 'time_created': self.get_value(dhcp.time_created),
+ 'time_created': self.get_date(dhcp.time_created),
'options': dhcp_opt,
'compartment_name': str(compartment['name']),
'compartment_id': str(compartment['id']),
@@ -3753,7 +3769,7 @@ def __load_core_network_seclst(self, virtual_network, compartments):
'id': self.get_value(sl.id),
'vcn_id': self.get_value(sl.vcn_id),
'name': self.get_value(sl.display_name),
- 'time_created': self.get_value(sl.time_created, trim_date=True),
+ 'time_created': self.get_date(sl.time_created),
'sec_rules': sec_rules,
'compartment_name': str(compartment['name']),
'compartment_path': str(compartment['path']),
@@ -3829,7 +3845,7 @@ def __load_core_network_nsg_secrule(self, security_rule):
'is_valid': self.get_value(security_rule.is_valid),
'protocol': self.get_value(security_rule.protocol),
'protocol_name': protocol_name,
- 'time_created': self.get_value(security_rule.time_created),
+ 'time_created': self.get_date(security_rule.time_created),
'src_port_min': "",
'src_port_max': "",
'dst_port_min': "",
@@ -3998,18 +4014,20 @@ def __load_core_network_nsg(self, virtual_network, compartments):
# loop on array
# arr = oci.core.models.NetworkSecurityGroup
for arr in arrs:
- val = {'id': str(arr.id),
- 'name': self.get_value(arr.display_name),
- 'vcn_id': self.get_value(arr.vcn_id),
- 'time_created': self.get_value(arr.time_created),
- 'compartment_name': str(compartment['name']),
- 'compartment_path': str(compartment['path']),
- 'defined_tags': [] if arr.defined_tags is None else arr.defined_tags,
- 'freeform_tags': [] if arr.freeform_tags is None else arr.freeform_tags,
- 'compartment_id': str(compartment['id']),
- 'region_name': str(self.config['region']),
- 'sec_rules': []
- }
+ val = {
+ 'id': str(arr.id),
+ 'name': self.get_value(arr.display_name),
+ 'vcn_id': self.get_value(arr.vcn_id),
+ 'time_created': self.get_date(arr.time_created),
+ 'compartment_name': str(compartment['name']),
+ 'compartment_path': str(compartment['path']),
+ 'defined_tags': [] if arr.defined_tags is None else arr.defined_tags,
+ 'freeform_tags': [] if arr.freeform_tags is None else arr.freeform_tags,
+ 'compartment_id': str(compartment['id']),
+ 'region_name': str(self.config['region']),
+ 'sec_rules': [],
+ 'vnics': []
+ }
# loop on NSG
arrsecs = []
@@ -4038,6 +4056,34 @@ def __load_core_network_nsg(self, virtual_network, compartments):
for arrsec in arrsecs:
val['sec_rules'].append(self.__load_core_network_nsg_secrule(arrsec))
+ # loop on NSG to obtain VNICs, Added 12/01/2024
+ vnics = []
+ try:
+ vnics = oci.pagination.list_call_get_all_results(
+ virtual_network.list_network_security_group_vnics,
+ arr.id,
+ retry_strategy=oci.retry.DEFAULT_RETRY_STRATEGY
+ ).data
+ except oci.exceptions.ServiceError as e:
+ if self.__check_service_error(e, compartment):
+ self.__load_print_auth_warning("p", False, to_print=self.flags.skip_threads)
+ errstr += "n"
+ else:
+ self.__load_print_error(e, compartment)
+ errstr += "e"
+ continue
+ except Exception as e:
+ self.__load_print_error(e, compartment)
+ errstr += "e"
+ continue
+
+ for vnic in vnics:
+ val['vnics'].append({
+ 'resource_id': self.get_value(vnic.resource_id),
+ 'time_associated': self.get_date(vnic.time_associated),
+ 'vnic_id': self.get_value(vnic.vnic_id)
+ })
+
data.append(val)
cnt += 1
@@ -4115,7 +4161,7 @@ def __load_core_network_subnet(self, virtual_network, compartments):
'subnet': (str(subnet.cidr_block) + " " + availability_domain + (" (Private) " if subnet.prohibit_public_ip_on_vnic else " (Public)")),
'availability_domain': availability_domain,
'public_private': ("Private" if subnet.prohibit_public_ip_on_vnic else "Public"),
- 'time_created': self.get_value(subnet.time_created),
+ 'time_created': self.get_date(subnet.time_created),
'security_list_ids': [str(es) for es in subnet.security_list_ids],
'dhcp_options_id': self.get_value(subnet.dhcp_options_id),
'route_table_id': self.get_value(subnet.route_table_id),
@@ -4226,7 +4272,7 @@ def __load_core_network_subnet_private_ip(self, virtual_network, subnets):
'is_primary': self.get_value(ip.is_primary),
'vlan_id': self.get_value(ip.vlan_id),
'subnet_id': self.get_value(ip.subnet_id),
- 'time_created': self.get_value(ip.time_created)[0:16],
+ 'time_created': self.get_date(ip.time_created),
'vnic_id': self.get_value(ip.vnic_id),
'defined_tags': [] if ip.defined_tags is None else ip.defined_tags,
'freeform_tags': [] if ip.freeform_tags is None else ip.freeform_tags,
@@ -4303,19 +4349,21 @@ def __load_core_network_sgw(self, virtual_network, compartments):
# loop on all sgws
# sgw = oci.core.models.ServiceGateway
for sgw in sgws:
- val = {'id': str(sgw.id),
- 'vcn_id': self.get_value(sgw.vcn_id),
- 'name': self.get_value(sgw.display_name),
- 'time_created': self.get_value(sgw.time_created),
- 'block_traffic': self.get_value(sgw.block_traffic),
- 'route_table_id': self.get_value(sgw.route_table_id),
- 'services': str(', '.join(x.service_name for x in sgw.services)),
- 'compartment_name': str(compartment['name']),
- 'compartment_path': str(compartment['path']),
- 'compartment_id': str(compartment['id']),
- 'defined_tags': [] if sgw.defined_tags is None else sgw.defined_tags,
- 'freeform_tags': [] if sgw.freeform_tags is None else sgw.freeform_tags,
- 'region_name': str(self.config['region'])}
+ val = {
+ 'id': str(sgw.id),
+ 'vcn_id': self.get_value(sgw.vcn_id),
+ 'name': self.get_value(sgw.display_name),
+ 'time_created': self.get_date(sgw.time_created),
+ 'block_traffic': self.get_value(sgw.block_traffic),
+ 'route_table_id': self.get_value(sgw.route_table_id),
+ 'services': str(', '.join(x.service_name for x in sgw.services)),
+ 'compartment_name': str(compartment['name']),
+ 'compartment_path': str(compartment['path']),
+ 'compartment_id': str(compartment['id']),
+ 'defined_tags': [] if sgw.defined_tags is None else sgw.defined_tags,
+ 'freeform_tags': [] if sgw.freeform_tags is None else sgw.freeform_tags,
+ 'region_name': str(self.config['region'])
+ }
data.append(val)
cnt += 1
@@ -4386,7 +4434,7 @@ def __load_core_network_nat(self, virtual_network, compartments):
# nat = oci.core.models.NatGateway.
for nat in natgws:
val = {'id': str(nat.id), 'vcn_id': str(nat.vcn_id), 'name': str(nat.display_name) + " - " + str(nat.nat_ip),
- 'time_created': self.get_value(nat.time_created),
+ 'time_created': self.get_date(nat.time_created),
'block_traffic': self.get_value(nat.block_traffic),
'nat_ip': self.get_value(nat.nat_ip),
'display_name': str(nat.display_name),
@@ -4466,10 +4514,10 @@ def __load_core_network_dra(self, virtual_network, compartments):
for arr in arrs:
if arr.lifecycle_state == oci.core.models.DrgAttachment.LIFECYCLE_STATE_ATTACHED:
val = {
- 'id': str(arr.id),
+ 'id': self.get_value(arr.id),
'vcn_id': self.get_value(arr.vcn_id),
'drg_id': self.get_value(arr.drg_id),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'display_name': self.get_value(arr.display_name),
'is_cross_tenancy': self.get_value(arr.is_cross_tenancy),
'export_drg_route_distribution_id': self.get_value(arr.export_drg_route_distribution_id),
@@ -4566,7 +4614,7 @@ def __load_core_network_drg(self, virtual_network, compartments):
if arr.lifecycle_state == oci.core.models.Drg.LIFECYCLE_STATE_AVAILABLE:
val = {'id': str(arr.id),
'name': str(arr.display_name),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'redundancy': "",
'drg_route_tables': [],
'default_export_drg_route_distribution_id': self.get_value(arr.default_export_drg_route_distribution_id),
@@ -4602,7 +4650,7 @@ def __load_core_network_drg(self, virtual_network, compartments):
'id': str(rt.id),
'drg_id': str(arr.id),
'display_name': self.get_value(rt.display_name),
- 'time_created': self.get_value(rt.time_created),
+ 'time_created': self.get_date(rt.time_created),
'route_rules': self.__load_core_network_drg_route_rules(virtual_network, rt.id),
'import_drg_route_distribution_id': self.get_value(rt.import_drg_route_distribution_id),
'is_ecmp_enabled': str(rt.is_ecmp_enabled),
@@ -4745,19 +4793,20 @@ def __load_core_network_cpe(self, virtual_network, compartments):
# loop on array
# arr = oci.core.models.Cpe
for arr in arrs:
- val = {'id': str(arr.id),
- 'name': self.get_value(arr.display_name) + " - " + self.get_value(arr.ip_address),
- 'display_name': self.get_value(arr.display_name),
- 'ip_address': self.get_value(arr.ip_address),
- 'time_created': self.get_value(arr.time_created),
- 'cpe_device_shape_id': self.get_value(arr.cpe_device_shape_id),
- 'compartment_name': str(compartment['name']),
- 'compartment_path': str(compartment['path']),
- 'defined_tags': [] if arr.defined_tags is None else arr.defined_tags,
- 'freeform_tags': [] if arr.freeform_tags is None else arr.freeform_tags,
- 'compartment_id': str(compartment['id']),
- 'region_name': str(self.config['region'])
- }
+ val = {
+ 'id': str(arr.id),
+ 'name': self.get_value(arr.display_name) + " - " + self.get_value(arr.ip_address),
+ 'display_name': self.get_value(arr.display_name),
+ 'ip_address': self.get_value(arr.ip_address),
+ 'time_created': self.get_date(arr.time_created),
+ 'cpe_device_shape_id': self.get_value(arr.cpe_device_shape_id),
+ 'compartment_name': str(compartment['name']),
+ 'compartment_path': str(compartment['path']),
+ 'defined_tags': [] if arr.defined_tags is None else arr.defined_tags,
+ 'freeform_tags': [] if arr.freeform_tags is None else arr.freeform_tags,
+ 'compartment_id': str(compartment['id']),
+ 'region_name': str(self.config['region'])
+ }
data.append(val)
cnt += 1
@@ -4826,26 +4875,27 @@ def __load_core_network_firewall(self, network_firewall_client, compartments):
if not self.check_lifecycle_state_active(arr.lifecycle_state):
continue
- val = {'id': str(arr.id),
- 'name': str(arr.display_name) + " - " + str(arr.ipv4_address),
- 'display_name': self.get_value(arr.display_name),
- 'subnet_id': self.get_value(arr.subnet_id),
- 'subnet_name': "" if arr.subnet_id is None else self.get_network_subnet(arr.subnet_id, True),
- 'availability_domain': self.get_value(arr.availability_domain),
- 'ipv4_address': self.get_value(arr.ipv4_address),
- 'ipv6_address': self.get_value(arr.ipv6_address),
- 'network_firewall_policy_id': self.get_value(arr.network_firewall_policy_id),
- 'network_firewall_policy_name': "",
- 'time_created': self.get_value(arr.time_created),
- 'time_updated': self.get_value(arr.time_updated),
- 'lifecycle_state': self.get_value(arr.lifecycle_state),
- 'compartment_name': str(compartment['name']),
- 'compartment_path': str(compartment['path']),
- 'defined_tags': [] if arr.defined_tags is None else arr.defined_tags,
- 'freeform_tags': [] if arr.freeform_tags is None else arr.freeform_tags,
- 'compartment_id': str(compartment['id']),
- 'region_name': str(self.config['region'])
- }
+ val = {
+ 'id': str(arr.id),
+ 'name': str(arr.display_name) + " - " + str(arr.ipv4_address),
+ 'display_name': self.get_value(arr.display_name),
+ 'subnet_id': self.get_value(arr.subnet_id),
+ 'subnet_name': "" if arr.subnet_id is None else self.get_network_subnet(arr.subnet_id, True),
+ 'availability_domain': self.get_value(arr.availability_domain),
+ 'ipv4_address': self.get_value(arr.ipv4_address),
+ 'ipv6_address': self.get_value(arr.ipv6_address),
+ 'network_firewall_policy_id': self.get_value(arr.network_firewall_policy_id),
+ 'network_firewall_policy_name': "",
+ 'time_created': self.get_date(arr.time_created),
+ 'time_updated': self.get_date(arr.time_updated),
+ 'lifecycle_state': self.get_value(arr.lifecycle_state),
+ 'compartment_name': str(compartment['name']),
+ 'compartment_path': str(compartment['path']),
+ 'defined_tags': [] if arr.defined_tags is None else arr.defined_tags,
+ 'freeform_tags': [] if arr.freeform_tags is None else arr.freeform_tags,
+ 'compartment_id': str(compartment['id']),
+ 'region_name': str(self.config['region'])
+ }
# get name of the policy
nwfpolicy = self.search_unique_item(self.C_NETWORK, self.C_NETWORK_FIREWALL_POLICY, 'id', arr.network_firewall_policy_id)
@@ -4922,8 +4972,8 @@ def __load_core_network_firewall_policy(self, network_firewall_client, compartme
val = {'id': str(arr.id),
'display_name': str(arr.display_name),
- 'time_created': self.get_value(arr.time_created),
- 'time_updated': self.get_value(arr.time_updated),
+ 'time_created': self.get_date(arr.time_created),
+ 'time_updated': self.get_date(arr.time_updated),
'lifecycle_state': self.get_value(arr.lifecycle_state),
'compartment_id': str(compartment['id']),
'compartment_name': str(compartment['name']),
@@ -5065,7 +5115,7 @@ def __load_core_network_privateip(self, virtual_network, routes):
continue
val = {'id': str(arr.id), 'name': str(arr.ip_address) + " - " + str(arr.display_name),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'availability_domain': self.get_value(arr.availability_domain),
'hostname_label': self.get_value(arr.hostname_label),
'is_primary': self.get_value(arr.is_primary),
@@ -5172,7 +5222,7 @@ def __load_core_network_vc(self, virtual_network, compartments):
'reference_comment': self.get_value(arr.reference_comment),
'service_type': self.get_value(arr.service_type),
'cross_connect_mappings': data_cc,
- 'type': self.get_value(arr.type), 'time_created': self.get_value(arr.time_created),
+ 'type': self.get_value(arr.type), 'time_created': self.get_date(arr.time_created),
'compartment_name': str(compartment['name']),
'compartment_id': str(compartment['id']),
'compartment_path': str(compartment['path']),
@@ -5276,7 +5326,7 @@ def __load_core_network_ips(self, virtual_network, compartments):
'routing': self.get_value(tunnel.routing),
'cpe_ip': self.get_value(tunnel.cpe_ip),
'vpn_ip': self.get_value(tunnel.vpn_ip),
- 'time_created': self.get_value(tunnel.time_created),
+ 'time_created': self.get_date(tunnel.time_created),
'oracle_can_initiate': self.get_value(tunnel.oracle_can_initiate),
'nat_translation_enabled': self.get_value(tunnel.nat_translation_enabled),
'dpd_mode': self.get_value(tunnel.dpd_mode),
@@ -5343,7 +5393,7 @@ def __load_core_network_ips(self, virtual_network, compartments):
'cpe_local_identifier': self.get_value(arr.cpe_local_identifier),
'cpe_local_identifier_type': self.get_value(arr.cpe_local_identifier_type),
'cpe_id': self.get_value(arr.cpe_id),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'compartment_name': str(compartment['name']),
'compartment_id': str(compartment['id']),
'compartment_path': str(compartment['path']),
@@ -5702,7 +5752,7 @@ def __load_core_compute_instances(self, compute, compartments, plugin_client):
'lifecycle_state': self.get_value(arr.lifecycle_state),
'availability_domain': self.get_value(arr.availability_domain),
'fault_domain': self.get_value(arr.fault_domain),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'time_maintenance_reboot_due': self.get_value(arr.time_maintenance_reboot_due),
'image_id': self.get_value(arr.image_id),
'compartment_name': str(compartment['name']),
@@ -5741,6 +5791,7 @@ def __load_core_compute_instances(self, compute, compartments, plugin_client):
'launch_remote_data_volume_type': '',
'launch_is_pv_encryption_in_transit_enabled': '',
'launch_is_consistent_volume_naming_enabled': '',
+ 'are_legacy_imds_endpoints_disabled': '',
'platform_type': '',
'platform_is_secure_boot_enabled': '',
'platform_is_trusted_platform_module_enabled': '',
@@ -6009,7 +6060,7 @@ def __load_core_compute_capacity_reservation(self, compute_client, compartments)
'lifecycle_state': self.get_value(arr.lifecycle_state),
'availability_domain': self.get_value(arr.availability_domain),
'is_default_reservation': self.get_value(arr.is_default_reservation),
- 'time_created': str(arr.time_created)[0:16],
+ 'time_created': self.get_date(arr.time_created),
'reserved_instance_count': arr.reserved_instance_count,
'used_instance_count': arr.used_instance_count,
'instances': [],
@@ -6545,7 +6596,7 @@ def __load_core_compute_boot_vol_attach(self, compute, compartments):
'boot_volume_id': str(arr.boot_volume_id),
'instance_id': str(arr.instance_id),
'lifecycle_state': self.get_value(arr.lifecycle_state),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'is_pv_encryption_in_transit_enabled': self.get_value(arr.is_pv_encryption_in_transit_enabled),
'encryption_in_transit_type': self.get_value(arr.encryption_in_transit_type),
'compartment_name': str(compartment['name']),
@@ -6620,7 +6671,7 @@ def __load_core_compute_vol_attach(self, compute, compartments):
'volume_id': self.get_value(arr.volume_id),
'instance_id': self.get_value(arr.instance_id),
'lifecycle_state': self.get_value(arr.lifecycle_state),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'attachment_type': self.get_value(arr.attachment_type),
'device': self.get_value(arr.device),
'is_read_only': self.get_value(arr.is_read_only),
@@ -6652,64 +6703,66 @@ def __load_core_compute_vol_attach(self, compute, compartments):
##########################################################################
# load Core Network Vnic
##########################################################################
-
def __load_core_compute_vnic(self, virtual_network, vnic_id, compartment):
data = {}
try:
if not vnic_id:
- return data
+ return {}
# get the vnic
- vnic = virtual_network.get_vnic(vnic_id).data
+ # Added retry_strategy 12/4/2024
+ vnic = virtual_network.get_vnic(
+ vnic_id,
+ retry_strategy=oci.retry.DEFAULT_RETRY_STRATEGY
+ ).data
- # add attributes to data
- data['private_ip'] = str(vnic.private_ip)
- data['display_name'] = (str(vnic.private_ip) + " (Prv)")
- data['public_ip'] = ""
- data['skip_source_dest_check'] = self.get_value(vnic.skip_source_dest_check)
- data['is_primary'] = self.get_value(vnic.is_primary)
- data['subnet'] = ""
- data['hostname_label'] = self.get_value(vnic.hostname_label)
- data['internal_fqdn'] = ""
- data['mac_address'] = self.get_value(vnic.mac_address)
- data['time_created'] = self.get_value(vnic.time_created)
- data['subnet_id'] = ""
- data['nsg_ids'] = [x for x in vnic.nsg_ids]
- data['nsg_names'] = self.__load_core_network_get_nsg_names(vnic.nsg_ids)
- data['vcn'] = ""
-
- # search the subnet
- subnet_display = ""
+ # get the subnet from memory
subnet = self.search_unique_item(self.C_NETWORK, self.C_NETWORK_SUBNET, 'id', str(vnic.subnet_id))
- if subnet:
- data['subnet'] = subnet['name'] + " " + subnet['cidr_block']
- data['vcn'] = subnet['vcn_name'] + " " + subnet['vcn_cidr']
- data['subnet_id'] = subnet['id']
- subnet_display = ", Subnet (" + data['subnet'] + "), VCN (" + data['vcn'] + ")"
- data['internal_fqdn'] = str(vnic.hostname_label) + '.' + subnet['dns']
-
- # check vnic information
- if vnic.public_ip is not None:
- data['display_name'] += ", " + self.get_value(vnic.public_ip) + " (Pub)"
- data['public_ip'] = self.get_value(vnic.public_ip)
-
- # if source dest
- if vnic.skip_source_dest_check:
- data['display_name'] += " - Skip=Y"
-
- # if primary
- if vnic.is_primary:
- data['display_name'] += " - Primary "
-
- # subnet
- data['dbdesc'] = data['display_name']
- data['display_name'] += subnet_display
+
+ # add attributes to data
+ data = {
+ 'private_ip': str(vnic.private_ip),
+ 'name': self.get_value(vnic.private_ip) + " (Prv)",
+ 'display_name': self.get_value(vnic.display_name),
+ 'public_ip': self.get_value(vnic.public_ip),
+ 'skip_source_dest_check': self.get_value(vnic.skip_source_dest_check),
+ 'is_primary': self.get_value(vnic.is_primary),
+ 'hostname_label': self.get_value(vnic.hostname_label),
+ 'internal_fqdn': (str(vnic.hostname_label) + '.' + subnet['dns'] if subnet else ""),
+ 'mac_address': self.get_value(vnic.mac_address),
+ 'time_created': self.get_date(vnic.time_created),
+ 'vcn': (subnet['vcn_name'] + " " + subnet['vcn_cidr']) if subnet else "",
+ 'subnet': (subnet['name'] + " " + subnet['cidr_block']) if subnet else "",
+ 'subnet_id': subnet['id'] if subnet else "",
+ 'subnet_name': subnet['name'] if subnet else "",
+ 'nsg_ids': self.get_values(vnic.nsg_ids),
+ 'nsg_names': self.__load_core_network_get_nsg_names(vnic.nsg_ids),
+ 'ip_addresses': []
+ }
+
+ # Align VNIC Name display information - Amended 12/1/2024
+ data['name'] += ", " + self.get_value(vnic.public_ip) + " (Pub)" if vnic.public_ip else ""
+ data['name'] += ", Skip=Y" if vnic.skip_source_dest_check else ""
+ data['name'] += ", Primary " if vnic.is_primary else ""
+
+ # Add for Database use
+ data['dbdesc'] = data['name']
+
+ # Add subnet to the name
+ data['name'] += (", Subnet (" + data['subnet'] + "), VCN (" + data['vcn'] + ")") if subnet else ""
# get all private_ip_addresses for vnic
- data['ip_addresses'] = []
- private_ip_addresses = virtual_network.list_private_ips(vnic_id=vnic_id).data
+ private_ip_addresses = virtual_network.list_private_ips(
+ vnic_id=vnic_id,
+ retry_strategy=oci.retry.DEFAULT_RETRY_STRATEGY
+ ).data
+
for pip in private_ip_addresses:
- data['ip_addresses'].append({'ip_address': self.get_value(pip.ip_address), 'id': str(pip.id), 'type': "Private"})
+ data['ip_addresses'].append({
+ 'ip_address': self.get_value(pip.ip_address),
+ 'id': str(pip.id),
+ 'type': "Private"
+ })
# get public ip assigned to the private ip
try:
@@ -6717,7 +6770,11 @@ def __load_core_compute_vnic(self, virtual_network, vnic_id, compartment):
privdetails.private_ip_id = pip.id
pub_ip = virtual_network.get_public_ip_by_private_ip_id(privdetails)
if pub_ip.status == 200:
- data['ip_addresses'].append({'ip_address': self.get_value(pub_ip.data.ip_address), 'id': self.get_value(pub_ip.data.id), 'type': "Public"})
+ data['ip_addresses'].append({
+ 'ip_address': self.get_value(pub_ip.data.ip_address),
+ 'id': self.get_value(pub_ip.data.id),
+ 'type': "Public"
+ })
except Exception:
pass
@@ -6787,18 +6844,22 @@ def __load_core_compute_vnic_attach(self, compute, virtual_network, compartments
if str(arr.lifecycle_state) != oci.core.models.VnicAttachment.LIFECYCLE_STATE_ATTACHED:
continue
- val = {'id': str(arr.id),
- 'display_name': str(arr.display_name),
- 'vnic_id': self.get_value(arr.vnic_id),
- 'vnic_details': self.__load_core_compute_vnic(virtual_network, arr.vnic_id, compartment),
- 'instance_id': self.get_value(arr.instance_id),
- 'time_created': self.get_value(arr.time_created),
- 'nic_index': self.get_value(arr.nic_index),
- 'subnet_id': self.get_value(arr.subnet_id),
- 'compartment_name': str(compartment['name']),
- 'compartment_id': str(compartment['id']),
- 'compartment_path': str(compartment['path']),
- 'region_name': str(self.config['region'])}
+ val = {
+ 'id': self.get_value(arr.id),
+ 'display_name': self.get_value(arr.display_name),
+ 'vnic_id': self.get_value(arr.vnic_id),
+ 'vnic_details': self.__load_core_compute_vnic(virtual_network, arr.vnic_id, compartment),
+ 'instance_id': self.get_value(arr.instance_id),
+ 'time_created': self.get_date(arr.time_created),
+ 'nic_index': self.get_value(arr.nic_index),
+ 'subnet_id': self.get_value(arr.subnet_id),
+ 'subnet_name': self.get_network_subnet(arr.subnet_id),
+ 'subnet': self.get_network_subnet(arr.subnet_id, detailed=True),
+ 'compartment_name': str(compartment['name']),
+ 'compartment_id': str(compartment['id']),
+ 'compartment_path': str(compartment['path']),
+ 'region_name': str(self.config['region'])
+ }
data.append(val)
cnt += 1
@@ -6910,7 +6971,7 @@ def __load_core_block_boot(self, block_storage, compartments):
'id': str(arr.id),
'display_name': str(arr.display_name),
'size_in_gbs': self.get_value(arr.size_in_gbs),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'kms_key_id': self.get_value(arr.kms_key_id),
'vpus_per_gb': self.get_value(arr.vpus_per_gb),
'is_hydrated': self.get_value(arr.is_hydrated),
@@ -7017,7 +7078,7 @@ def __load_core_block_volume(self, block_storage, compartments):
'id': self.get_value(arr.id),
'display_name': self.get_value(arr.display_name),
'size_in_gbs': self.get_value(arr.size_in_gbs),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'kms_key_id': self.get_value(arr.kms_key_id),
'volume_group_id': self.get_value(arr.volume_group_id),
'volume_group_name': "",
@@ -7124,7 +7185,7 @@ def __load_core_block_volume_group(self, block_storage, compartments):
'id': str(arr.id),
'display_name': self.get_value(arr.display_name),
'size_in_gbs': self.get_value(arr.size_in_gbs),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'volume_ids': [str(a) for a in arr.volume_ids],
'compartment_name': str(compartment['name']),
'compartment_path': str(compartment['path']),
@@ -7209,7 +7270,7 @@ def __load_core_block_boot_backup(self, block_storage, compartments):
'boot_volume_id': self.get_value(arr.boot_volume_id),
'type': self.get_value(arr.type),
'source_type': self.get_value(arr.source_type),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'display_name': self.get_value(arr.display_name),
'size_in_gbs': self.get_value(arr.size_in_gbs),
'kms_key_id': self.get_value(arr.kms_key_id),
@@ -7307,7 +7368,7 @@ def __load_core_block_volume_backup(self, block_storage, compartments):
'backup_name': "Not Found",
'type': str(arr.type),
'source_type': self.get_value(arr.source_type),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'display_name': self.get_value(arr.display_name),
'size_in_gbs': self.get_value(arr.size_in_gbs),
'unique_size_in_gbs': self.get_value(arr.unique_size_in_gbs),
@@ -7400,7 +7461,7 @@ def __load_core_block_volume_group_backup(self, block_storage, compartments):
'backup_name': "Not Found",
'type': self.get_value(arr.type),
'source_type': self.get_value(arr.source_type),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'display_name': self.get_value(arr.display_name),
'size_in_gbs': self.get_value(arr.size_in_gbs),
'unique_size_in_gbs': self.get_value(arr.unique_size_in_gbs),
@@ -7500,71 +7561,46 @@ def __load_load_balancers(self, load_balancer, compartments):
errstr += "e"
# add the rest
- val = {'id': str(arr.id),
- 'shape_name': str(arr.shape_name),
- 'time_created': str(arr.time_created)[0:16],
- 'shape_min_mbps': "",
- 'shape_max_mbps': "",
- 'display_name': self.get_value(arr.display_name),
- 'is_private': self.get_value(arr.is_private),
- 'status': str(status),
- 'ip_addresses': [(self.get_value(ip.ip_address) + " - " + ("Public" if ip.is_public else "Private") + (" Reserved" if ip.reserved_ip else "")) for ip in arr.ip_addresses],
- 'compartment_name': str(compartment['name']),
- 'compartment_path': str(compartment['path']),
- 'compartment_id': str(compartment['id']),
- 'nsg_ids': [],
- 'nsg_names': "",
- 'defined_tags': [] if arr.defined_tags is None else arr.defined_tags,
- 'freeform_tags': [] if arr.freeform_tags is None else arr.freeform_tags,
- 'region_name': str(self.config['region']),
- 'subnet_ids': [],
- 'certificates': '',
- 'ssl_cipher_suites': [],
- 'routing_policies': []}
-
- # Flexible Shapes
- if arr.shape_details:
- val['shape_min_mbps'] = self.get_value(arr.shape_details.minimum_bandwidth_in_mbps)
- val['shape_max_mbps'] = self.get_value(arr.shape_details.maximum_bandwidth_in_mbps)
-
- # certificates
- if arr.certificates:
- val['certificates'] = self.__get_certificate_info(arr.certificates)
-
- # subnets
- if arr.subnet_ids:
- val['subnet_ids'] = [str(a) for a in arr.subnet_ids]
-
- # network_security_group_ids
- if arr.network_security_group_ids:
- val['nsg_ids'] = [str(a) for a in arr.network_security_group_ids]
- val['nsg_names'] = self.__load_core_network_get_nsg_names(arr.network_security_group_ids)
+ val = {
+ 'id': str(arr.id),
+ 'shape_name': str(arr.shape_name),
+ 'time_created': self.get_date(arr.time_created),
+ 'time_updated': '',
+ 'shape_min_mbps': self.get_value(arr.shape_details.minimum_bandwidth_in_mbps) if arr.shape_details else '',
+ 'shape_max_mbps': self.get_value(arr.shape_details.maximum_bandwidth_in_mbps) if arr.shape_details else '',
+ 'display_name': self.get_value(arr.display_name),
+ 'is_private': self.get_value(arr.is_private),
+ 'status': str(status),
+ 'ip_addresses': [(self.get_value(ip.ip_address) + " - " + ("Public" if ip.is_public else "Private") + (" Reserved" if ip.reserved_ip else "")) for ip in arr.ip_addresses],
+ 'compartment_name': str(compartment['name']),
+ 'compartment_path': str(compartment['path']),
+ 'compartment_id': str(compartment['id']),
+ 'nsg_ids': self.get_values(arr.network_security_group_ids),
+ 'nsg_names': self.__load_core_network_get_nsg_names(arr.network_security_group_ids),
+ 'lifecycle_state': self.get_value(arr.lifecycle_state),
+ 'defined_tags': [] if arr.defined_tags is None else arr.defined_tags,
+ 'freeform_tags': [] if arr.freeform_tags is None else arr.freeform_tags,
+ 'region_name': str(self.config['region']),
+ 'subnet_ids': self.get_values(arr.subnet_ids),
+ 'certificates': self.__get_certificate_info(arr.certificates) if arr.certificates else '',
+ 'ssl_cipher_suites': [],
+ 'routing_policies': []
+ }
# listeners
datalis = []
for listener in arr.listeners:
lo = arr.listeners[listener]
- value = {'id': str(listener), 'port': self.get_value(lo.port), 'protocol': self.get_value(lo.protocol),
- 'default_backend_set_name': self.get_value(lo.default_backend_set_name), 'ssl_configuration': ""}
-
- # check ssl config
- if lo.ssl_configuration:
- value['ssl_configuration'] = self.get_value(lo.ssl_configuration.certificate_name)
-
- # path_route_set_name
- value['path_route_set_name'] = []
- if lo.path_route_set_name:
- value['path_route_set_name'] = self.get_value(lo.path_route_set_name)
-
- # rule_set_names
- value['rule_set_names'] = []
- if lo.rule_set_names:
- value['rule_set_names'] = [str(a) for a in lo.rule_set_names]
-
- # host names
- value['hostname_names'] = []
- if lo.hostname_names:
- value['hostname_names'] = [str(a) for a in lo.hostname_names]
+ value = {
+ 'id': str(listener),
+ 'port': self.get_value(lo.port),
+ 'protocol': self.get_value(lo.protocol),
+ 'default_backend_set_name': self.get_value(lo.default_backend_set_name),
+ 'path_route_set_name': self.get_value(lo.path_route_set_name),
+ 'rule_set_names': self.get_values(lo.rule_set_names),
+ 'hostname_names': self.get_values(lo.hostname_names),
+ 'ssl_configuration': self.get_value(lo.ssl_configuration.certificate_name) if lo.ssl_configuration else ''
+ }
# add data
datalis.append(value)
@@ -7580,10 +7616,16 @@ def __load_load_balancers(self, load_balancer, compartments):
array_path = []
if pro.path_routes is not None:
for path_route in pro.path_routes:
- array_path.append({'path': str(path_route.path), 'backend_set_name': str(path_route.backend_set_name)})
+ array_path.append({
+ 'path': str(path_route.path),
+ 'backend_set_name': str(path_route.backend_set_name)
+ })
# add the paths
- datapath.append({'name': str(pro.name), 'path_routes': array_path})
+ datapath.append({
+ 'name': str(pro.name),
+ 'path_routes': array_path
+ })
val['path_route'] = datapath
@@ -7609,7 +7651,11 @@ def __load_load_balancers(self, load_balancer, compartments):
datahosts = []
for hostname in arr.hostnames:
ho = arr.hostnames[hostname]
- datahosts.append({'name': str(ho.name), 'desc': str(ho.name).ljust(20) + " - " + str(ho.hostname)})
+ datahosts.append({
+ 'name': str(ho.name),
+ 'desc': str(ho.name).ljust(20) + " - " + str(ho.hostname),
+ 'info': str(ho.name) + ":" + str(ho.hostname)
+ })
val['hostnames'] = datahosts
# RuleSets
@@ -7702,32 +7748,27 @@ def __load_load_balancers_network(self, network_load_balancer, compartments):
'display_name': str(arr.display_name),
'lifecycle_state': self.get_value(arr.lifecycle_state),
'lifecycle_details': self.get_value(arr.lifecycle_details),
- 'time_created': self.get_value(arr.time_created)[0:16],
- 'time_updated': self.get_value(arr.time_updated)[0:16],
+ 'time_created': self.get_date(arr.time_created),
+ 'time_updated': self.get_date(arr.time_updated),
'is_private': self.get_value(arr.is_private),
'is_preserve_source_destination': self.get_value(arr.is_preserve_source_destination),
'nlb_ip_version': self.get_value(arr.nlb_ip_version),
'is_symmetric_hash_enabled': self.get_value(arr.is_symmetric_hash_enabled),
'subnet_id': self.get_value(arr.subnet_id),
- 'subnet_name': "" if arr.subnet_id is None else self.get_network_subnet(arr.subnet_id, True),
+ 'subnet_name': self.get_network_subnet(arr.subnet_id, True),
'status': str(status),
'ip_addresses': [(self.get_value(ip.ip_address) + " - " + ("Public" if ip.is_public else "Private") + (" Reserved" if ip.reserved_ip else "")) for ip in arr.ip_addresses],
'compartment_name': str(compartment['name']),
'compartment_path': str(compartment['path']),
'compartment_id': str(compartment['id']),
- 'nsg_ids': [],
- 'nsg_names': "",
+ 'nsg_ids': self.get_values(arr.network_security_group_ids),
+ 'nsg_names': self.__load_core_network_get_nsg_names(arr.network_security_group_ids),
'system_tags': [] if arr.system_tags is None else arr.system_tags,
'defined_tags': [] if arr.defined_tags is None else arr.defined_tags,
'freeform_tags': [] if arr.freeform_tags is None else arr.freeform_tags,
'region_name': str(self.config['region'])
}
- # network_security_group_ids
- if arr.network_security_group_ids:
- val['nsg_ids'] = [str(a) for a in arr.network_security_group_ids]
- val['nsg_names'] = self.__load_core_network_get_nsg_names(arr.network_security_group_ids)
-
# listeners
datalis = []
for listener in arr.listeners:
@@ -8260,7 +8301,7 @@ def __load_object_storage_buckets(self, object_storage, compartments):
for arr in buckets:
val = {
'name': str(arr.name),
- 'time_created': str(arr.time_created)[0:16],
+ 'time_created': self.get_date(arr.time_created),
'compartment_name': str(compartment['name']),
'compartment_path': str(compartment['path']),
'compartment_id': str(compartment['id']),
@@ -8423,7 +8464,7 @@ def __load_file_storage_filesystems(self, file_storage, compartments):
for fs in file_systems:
val = {'id': str(fs.id),
'display_name': str(fs.display_name),
- 'time_created': self.get_value(fs.time_created)[0:16],
+ 'time_created': self.get_date(fs.time_created),
'availability_domain': self.get_value(fs.availability_domain),
'size_gb': str(round(int(fs.metered_bytes) / 1024 / 1024 / 1024, 1)),
'metered_bytes': self.get_value(fs.metered_bytes),
@@ -8525,7 +8566,7 @@ def __load_file_storage_mount_targets(self, file_storage, virtual_network, compa
val = {'id': str(mt.id),
'display_name': self.get_value(mt.display_name),
'export_set_id': self.get_value(mt.export_set_id),
- 'time_created': self.get_value(mt.time_created),
+ 'time_created': self.get_date(mt.time_created),
'availability_domain': self.get_value(mt.availability_domain),
'private_ip_ids': [],
'subnet_id': self.get_value(mt.subnet_id),
@@ -8608,7 +8649,7 @@ def __load_file_storage_exports(self, file_storage, compartments):
'export_set_id': self.get_value(es.export_set_id),
'file_system_id': self.get_value(es.file_system_id),
'path': self.get_value(es.path),
- 'time_created': self.get_value(es.time_created),
+ 'time_created': self.get_date(es.time_created),
'export_set': []}
# export set
@@ -8833,7 +8874,7 @@ def __load_database_maintenance(self, database_client, maintenance_run_id, db_sy
'target_resource_id': str(mt.target_resource_id),
'maintenance_type': str(mt.maintenance_type),
'maintenance_subtype': str(mt.maintenance_subtype),
- 'maintenance_display': str(mt.display_name) + " ( " + str(mt.maintenance_type) + ", " + str(mt.maintenance_subtype) + ", " + str(mt.lifecycle_state) + " ), Scheduled: " + str(mt.time_scheduled)[0:16] + ((", Execution: " + str(mt.time_started)[0:16] + " - " + str(mt.time_ended)[0:16]) if str(mt.time_started) != 'None' else ""),
+ 'maintenance_display': str(mt.display_name) + " ( " + str(mt.maintenance_type) + ", " + str(mt.maintenance_subtype) + ", " + str(mt.lifecycle_state) + " ), Scheduled: " + self.get_date(mt.time_scheduled) + ((", Execution: " + self.get_date(mt.time_started) + " - " + self.get_date(mt.time_ended)) if str(mt.time_started) != 'None' else ""),
'maintenance_alert': ""
}
@@ -8841,7 +8882,7 @@ def __load_database_maintenance(self, database_client, maintenance_run_id, db_sy
if mt.time_scheduled:
delta = mt.time_scheduled.date() - datetime.date.today()
if delta.days <= 14 and delta.days >= 0 and not mt.time_started:
- val['maintenance_alert'] = "DBSystem Maintenance is in " + str(delta.days).ljust(2, ' ') + " days, on " + str(mt.time_scheduled)[0:16] + " for " + db_system_name
+ val['maintenance_alert'] = "DBSystem Maintenance is in " + str(delta.days).ljust(2, ' ') + " days, on " + self.get_date(mt.time_scheduled) + " for " + db_system_name
self.dbsystem_maintenance.append(val['maintenance_alert'])
return val
@@ -9022,7 +9063,7 @@ def __load_database_exacc_infrastructure(self, database_client, virtual_network,
'corporate_proxy': self.get_value(dbs.corporate_proxy),
'dns_server': self.get_value(dbs.dns_server),
'ntp_server': self.get_value(dbs.ntp_server),
- 'time_created': self.get_value(dbs.time_created),
+ 'time_created': self.get_date(dbs.time_created),
'lifecycle_state': self.get_value(dbs.lifecycle_state),
'lifecycle_details': self.get_value(dbs.lifecycle_details),
'csi_number': self.get_value(dbs.csi_number),
@@ -9425,7 +9466,7 @@ def __load_database_exascale_vault(self, database_client, compartments):
'availability_domain': self.get_value(dbs.availability_domain),
'time_zone': self.get_value(dbs.time_zone),
'lifecycle_state': self.get_value(dbs.lifecycle_state),
- 'time_created': self.get_value(dbs.time_created, trim_date=True),
+ 'time_created': self.get_date(dbs.time_created),
'lifecycle_details': self.get_value(dbs.lifecycle_details),
'total_size_in_gbs': self.get_value(dbs.high_capacity_database_storage.total_size_in_gbs) if dbs.high_capacity_database_storage else "",
'available_size_in_gbs': self.get_value(dbs.high_capacity_database_storage.available_size_in_gbs) if dbs.high_capacity_database_storage else "",
@@ -9533,7 +9574,7 @@ def __load_database_exascale_vms(self, database_client, virtual_network, compart
'node_count': self.get_value(arr.node_count),
'shape': self.get_value(arr.shape),
'display_name': self.get_value(arr.display_name),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'lifecycle_details': self.get_value(arr.lifecycle_details),
'time_zone': self.get_value(arr.time_zone),
'hostname': self.get_value(arr.hostname),
@@ -9682,7 +9723,7 @@ def __load_database_exadata_infrastructure(self, database_client, virtual_networ
'compute_count': self.get_value(dbs.compute_count),
'total_storage_size_in_gbs': self.get_value(dbs.total_storage_size_in_gbs),
'available_storage_size_in_gbs': self.get_value(dbs.available_storage_size_in_gbs),
- 'time_created': self.get_value(dbs.time_created),
+ 'time_created': self.get_date(dbs.time_created),
# Added 7/29/2024
'cluster_placement_group_id': self.get_value(dbs.cluster_placement_group_id),
'subscription_id': self.get_value(dbs.subscription_id),
@@ -9821,11 +9862,13 @@ def __load_database_exadata_vm_clusters(self, database_client, virtual_network,
'data_subnet_name': self.get_network_subnet(str(arr.subnet_id)),
'data_vcn_name': self.get_network_subnet(str(arr.subnet_id), vcn_name_only=True),
'backup_subnet_id': self.get_value(arr.backup_subnet_id),
- 'backup_subnet': "" if arr.backup_subnet_id is None else self.get_network_subnet(str(arr.backup_subnet_id), True),
- 'backup_subnet_name': "" if arr.backup_subnet_id is None else self.get_network_subnet(str(arr.backup_subnet_id)),
- 'backup_vcn_name': "" if arr.backup_subnet_id is None else self.get_network_subnet(str(arr.backup_subnet_id), vcn_name_only=True),
+ 'backup_subnet': self.get_network_subnet(str(arr.backup_subnet_id), True),
+ 'backup_subnet_name': self.get_network_subnet(str(arr.backup_subnet_id)),
+ 'backup_vcn_name': self.get_network_subnet(str(arr.backup_subnet_id), vcn_name_only=True),
'nsg_ids': arr.nsg_ids,
- 'backup_network_nsg_ids': self.get_value(arr.backup_network_nsg_ids),
+ 'nsg_names': self.__load_core_network_get_nsg_names(arr.nsg_ids),
+ 'backup_network_nsg_ids': arr.backup_network_nsg_ids,
+ 'backup_network_nsg_names': self.__load_core_network_get_nsg_names(arr.backup_network_nsg_ids),
'last_update_history_entry_id': self.get_value(arr.last_update_history_entry_id),
'shape': self.get_value(arr.shape),
'listener_port': self.get_value(arr.listener_port),
@@ -9833,7 +9876,7 @@ def __load_database_exadata_vm_clusters(self, database_client, virtual_network,
'node_count': self.get_value(arr.node_count),
'storage_size_in_gbs': self.get_value(arr.storage_size_in_gbs),
'display_name': self.get_value(arr.display_name),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'lifecycle_details': self.get_value(arr.lifecycle_details),
'time_zone': self.get_value(arr.time_zone),
'domain': self.get_value(arr.domain),
@@ -10249,7 +10292,7 @@ def __load_database_dbsystems(self, database_client, virtual_network, compartmen
'shape_memory_gb': 0,
'shape_storage_tb': 0,
'lifecycle_state': self.get_value(dbs.lifecycle_state),
- 'data_storage_size_in_gbs': "" if dbs.data_storage_size_in_gbs is None else self.get_value(dbs.data_storage_size_in_gbs),
+ 'data_storage_size_in_gbs': self.get_value(dbs.data_storage_size_in_gbs),
'availability_domain': self.get_value(dbs.availability_domain),
'cpu_core_count': self.get_value(dbs.cpu_core_count),
'node_count': ("" if dbs.node_count is None else self.get_value(dbs.node_count)),
@@ -10263,17 +10306,17 @@ def __load_database_dbsystems(self, database_client, virtual_network, compartmen
'data_subnet_name': self.get_network_subnet(str(dbs.subnet_id)),
'data_vcn_name': self.get_network_subnet(str(dbs.subnet_id), vcn_name_only=True),
'backup_subnet_id': self.get_value(dbs.backup_subnet_id),
- 'backup_subnet': "" if dbs.backup_subnet_id is None else self.get_network_subnet(str(dbs.backup_subnet_id), True),
- 'backup_subnet_name': "" if dbs.backup_subnet_id is None else self.get_network_subnet(str(dbs.backup_subnet_id)),
- 'backup_vcn_name': "" if dbs.backup_subnet_id is None else self.get_network_subnet(str(dbs.backup_subnet_id), vcn_name_only=True),
- 'scan_dns_record_id': "" if dbs.scan_dns_record_id is None else self.get_value(dbs.scan_dns_record_id),
+ 'backup_subnet': self.get_network_subnet(str(dbs.backup_subnet_id), True),
+ 'backup_subnet_name': self.get_network_subnet(str(dbs.backup_subnet_id)),
+ 'backup_vcn_name': self.get_network_subnet(str(dbs.backup_subnet_id), vcn_name_only=True),
+ 'scan_dns_record_id': self.get_value(dbs.scan_dns_record_id),
'listener_port': self.get_value(dbs.listener_port),
- 'cluster_name': "" if dbs.cluster_name is None else self.get_value(dbs.cluster_name),
+ 'cluster_name': self.get_value(dbs.cluster_name),
'database_edition': self.get_value(dbs.database_edition),
'compartment_name': str(compartment['name']),
'compartment_path': str(compartment['path']),
'compartment_id': str(compartment['id']),
- 'time_created': self.get_value(dbs.time_created),
+ 'time_created': self.get_date(dbs.time_created),
'storage_management': "",
'sparse_diskgroup': self.get_value(dbs.sparse_diskgroup),
'reco_storage_size_in_gb': self.get_value(dbs.reco_storage_size_in_gb),
@@ -10286,11 +10329,11 @@ def __load_database_dbsystems(self, database_client, virtual_network, compartmen
'patches': self.__load_database_dbsystems_patches(database_client, dbs.id),
'db_nodes': self.__load_database_dbsystems_dbnodes(database_client, virtual_network, compartment, dbs.id),
'db_homes': self.__load_database_dbsystems_dbhomes(dbs.id),
- 'scan_dns_name': "" if dbs.scan_dns_name is None else str(dbs.scan_dns_name),
- 'zone_id': str(dbs.zone_id),
- 'nsg_ids': dbs.nsg_ids,
+ 'scan_dns_name': self.get_value(dbs.scan_dns_name),
+ 'zone_id': self.get_value(dbs.zone_id),
+ 'nsg_ids': self.get_values(dbs.nsg_ids),
'nsg_ids_names': self.__load_core_network_get_nsg_names(dbs.nsg_ids),
- 'backup_network_nsg_ids': dbs.backup_network_nsg_ids,
+ 'backup_network_nsg_ids': self.get_values(dbs.backup_network_nsg_ids),
'backup_network_nsg_ids_names': self.__load_core_network_get_nsg_names(dbs.backup_network_nsg_ids),
'fault_domains': str(','.join(x for x in dbs.fault_domains)) if dbs.fault_domains else "",
'memory_size_in_gbs': self.get_value(dbs.memory_size_in_gbs),
@@ -10400,7 +10443,7 @@ def __load_database_dbsystems_dbnodes(self, database_client, virtual_network, co
'vnic2_details': self.__load_core_compute_vnic(virtual_network, db_node.vnic2_id, compartment),
'backup_vnic2_id': self.get_value(db_node.backup_vnic2_id),
'backup_vnic2_details': self.__load_core_compute_vnic(virtual_network, db_node.backup_vnic2_id, compartment),
- 'time_created': self.get_value(db_node.time_created, trim_date=True),
+ 'time_created': self.get_date(db_node.time_created),
'additional_details': self.get_value(db_node.additional_details),
'defined_tags': [] if db_node.defined_tags is None else db_node.defined_tags,
'freeform_tags': [] if db_node.freeform_tags is None else db_node.freeform_tags
@@ -10525,34 +10568,51 @@ def __load_database_dbsystems_dbhomes_databases(self, database_client, db_home_i
for db in dbs:
if not self.check_lifecycle_state_active(db.lifecycle_state):
continue
+ bkp = db.db_backup_config
value = {
'id': str(db.id),
- 'compartment_id': str(db.compartment_id),
- 'character_set': str(db.character_set),
- 'ncharacter_set': str(db.ncharacter_set),
- 'db_home_id': str(db.db_home_id),
- 'db_name': str(db.db_name),
- 'pdb_name': "" if db.pdb_name is None else str(db.pdb_name),
- 'db_workload': str(db.db_workload),
- 'db_unique_name': str(db.db_unique_name),
- 'lifecycle_details': str(db.lifecycle_details),
- 'lifecycle_state': str(db.lifecycle_state),
+ 'compartment_id': self.get_value(db.compartment_id),
+ 'character_set': self.get_value(db.character_set),
+ 'ncharacter_set': self.get_value(db.ncharacter_set),
+ 'db_home_id': self.get_value(db.db_home_id),
+ 'db_name': self.get_value(db.db_name),
+ 'pdb_name': self.get_value(db.pdb_name),
+ 'db_workload': self.get_value(db.db_workload),
+ 'db_unique_name': self.get_value(db.db_unique_name),
+ 'lifecycle_details': self.get_value(db.lifecycle_details),
+ 'lifecycle_state': self.get_value(db.lifecycle_state),
'defined_tags': [] if db.defined_tags is None else db.defined_tags,
'freeform_tags': [] if db.freeform_tags is None else db.freeform_tags,
- 'time_created': str(db.time_created),
- 'last_backup_timestamp': str(db.last_backup_timestamp),
- 'kms_key_id': str(db.kms_key_id),
- 'vault_id': str(db.vault_id),
- 'source_database_point_in_time_recovery_timestamp': str(db.source_database_point_in_time_recovery_timestamp),
- 'database_software_image_id': str(db.database_software_image_id),
- 'is_cdb': str(db.is_cdb),
- 'sid_prefix': str(db.sid_prefix),
+ 'time_created': self.get_date(db.time_created),
+ 'last_backup_timestamp': self.get_date(db.last_backup_timestamp),
+ 'kms_key_id': self.get_value(db.kms_key_id),
+ 'vault_id': self.get_value(db.vault_id),
+ 'source_database_point_in_time_recovery_timestamp': self.get_value(db.source_database_point_in_time_recovery_timestamp),
+ 'database_software_image_id': self.get_value(db.database_software_image_id),
+ 'is_cdb': self.get_value(db.is_cdb),
+ 'sid_prefix': self.get_value(db.sid_prefix),
'connection_strings_cdb': "",
- 'auto_backup_enabled': False,
'dataguard': self.__load_database_dbsystems_db_dg(database_client, db.id),
'backups': [] if self.flags.skip_backups else self.__load_database_dbsystems_db_backups(database_client, db.id, compartment),
- 'pdbs': self.__load_database_dbsystems_dbhomes_databases_pdbs(database_client, db.id)
+ 'pdbs': self.__load_database_dbsystems_dbhomes_databases_pdbs(database_client, db.id),
+ # Added or changed on 11/15/2024
+ 'auto_backup_enabled': self.get_value(db.db_backup_config.auto_backup_enabled) if db.db_backup_config else False,
+ 'kms_key_version_id': self.get_value(db.kms_key_version_id),
+ 'key_store_id': self.get_value(db.key_store_id),
+ 'key_store_wallet_name': self.get_value(db.key_store_wallet_name),
+ 'last_failed_backup_timestamp': self.get_date(db.last_failed_backup_timestamp),
+ 'last_backup_duration_in_seconds': self.get_value(db.last_backup_duration_in_seconds),
+ 'db_backup_config': {
+ 'auto_backup_enabled': self.get_value(bkp.auto_backup_enabled) if bkp else "",
+ 'recovery_window_in_days': self.get_value(bkp.recovery_window_in_days) if bkp else "",
+ 'auto_backup_window': self.get_value(bkp.auto_backup_window) if bkp else "",
+ 'auto_full_backup_window': self.get_value(bkp.auto_full_backup_window) if bkp else "",
+ 'auto_full_backup_day': self.get_value(bkp.auto_full_backup_day) if bkp else "",
+ 'run_immediate_full_backup': self.get_value(bkp.run_immediate_full_backup) if bkp else "",
+ 'backup_deletion_policy': self.get_value(bkp.backup_deletion_policy) if bkp else "",
+ 'backup_destination_type': str(', '.join(self.get_value(x.type) for x in bkp.backup_destination_details)) if bkp and bkp.backup_destination_details else ""
+ }
}
if db.db_backup_config is not None:
@@ -10616,7 +10676,7 @@ def __load_database_dbsystems_dbhomes_databases_pdbs(self, database_client, dbid
'is_restricted': self.get_value(db.is_restricted),
'management_status': self.get_value(db.pluggable_database_management_config.management_status) if db.pluggable_database_management_config else "",
'is_refreshable_clone': self.get_value(db.refreshable_clone_config.is_refreshable_clone) if db.refreshable_clone_config else "",
- 'time_created': self.get_value(db.time_created, trim_date=True),
+ 'time_created': self.get_date(db.time_created),
'defined_tags': [] if db.defined_tags is None else db.defined_tags,
'freeform_tags': [] if db.freeform_tags is None else db.freeform_tags
}
@@ -10891,10 +10951,11 @@ def __load_database_adb_d_vmclusters(self, database_client, compartments):
'subnet_name_full': self.get_network_subnet(str(dbs.subnet_id), True),
'subnet_name': self.get_network_subnet(str(dbs.subnet_id)),
'nsg_ids': dbs.nsg_ids,
+ 'nsg_names': self.__load_core_network_get_nsg_names(dbs.nsg_ids),
'last_update_history_entry_id': str(dbs.last_update_history_entry_id),
'lifecycle_state': self.get_value(dbs.lifecycle_state),
- 'time_created': self.get_value(dbs.time_created),
- 'time_updated': self.get_value(dbs.time_updated),
+ 'time_created': self.get_date(dbs.time_created),
+ 'time_updated': self.get_date(dbs.time_updated),
'cluster_time_zone': self.get_value(dbs.cluster_time_zone),
'lifecycle_details': self.get_value(dbs.lifecycle_details),
'shape': self.get_value(dbs.shape),
@@ -11136,7 +11197,7 @@ def __load_database_adb_database(self, database_client, compartments):
'service_console_url': self.get_value(dbs.service_console_url),
'connection_strings': "",
'connection_urls': self.get_value(dbs.connection_urls),
- 'time_created': self.get_value(dbs.time_created),
+ 'time_created': self.get_date(dbs.time_created),
'compartment_name': str(compartment['name']),
'compartment_path': str(compartment['path']),
'compartment_id': str(compartment['id']),
@@ -11149,10 +11210,13 @@ def __load_database_adb_database(self, database_client, compartments):
'is_auto_scaling_enabled': dbs.is_auto_scaling_enabled,
'is_dedicated': dbs.is_dedicated,
'subnet_id': self.get_value(dbs.subnet_id),
+ 'subnet_name': self.get_network_subnet(dbs.subnet_id),
+ 'subnet': self.get_network_subnet(dbs.subnet_id, detailed=True),
'data_safe_status': self.get_value(dbs.data_safe_status),
'time_maintenance_begin': self.get_value(dbs.time_maintenance_begin),
'time_maintenance_end': self.get_value(dbs.time_maintenance_end),
- 'nsg_ids': dbs.nsg_ids,
+ 'nsg_ids': self.get_values(dbs.nsg_ids),
+ 'nsg_names': self.__load_core_network_get_nsg_names(dbs.nsg_ids),
'private_endpoint': self.get_value(dbs.private_endpoint),
'private_endpoint_label': self.get_value(dbs.private_endpoint_label),
'backups': [],
@@ -11839,8 +11903,8 @@ def __load_database_mysql(self, mysql_client, compartments):
value['port_x'] = str(mysql.port_x)
value['maintenance'] = str(mysql.maintenance.window_start_time) if mysql.maintenance else ""
value['channels'] = str(', '.join(str(x.display_name) for x in mysql.channels))
- value['time_earliest_recovery_point'] = str(mysql.point_in_time_recovery_details.time_earliest_recovery_point)[0:16] if mysql.point_in_time_recovery_details else ""
- value['time_latest_recovery_point'] = str(mysql.point_in_time_recovery_details.time_latest_recovery_point)[0:16] if mysql.point_in_time_recovery_details else ""
+ value['time_earliest_recovery_point'] = self.get_date(mysql.point_in_time_recovery_details.time_earliest_recovery_point) if mysql.point_in_time_recovery_details else ""
+ value['time_latest_recovery_point'] = self.get_date(mysql.point_in_time_recovery_details.time_latest_recovery_point) if mysql.point_in_time_recovery_details else ""
except oci.exceptions.ServiceError as e:
if self.__check_service_error(e, compartment):
@@ -11936,7 +12000,7 @@ def __load_database_mysql_backups(self, mysql_backup_client, compartments):
'display_name': self.get_value(backup.display_name),
'description': self.get_value(backup.description),
'db_system_id': self.get_value(backup.db_system_id),
- 'time_created': self.get_value(backup.time_created, trim_date=True),
+ 'time_created': self.get_date(backup.time_created),
'lifecycle_state': self.get_value(backup.lifecycle_state),
'backup_type': self.get_value(backup.backup_type),
'creation_type': self.get_value(backup.creation_type),
@@ -12034,8 +12098,8 @@ def __load_database_postgresql(self, postgresql_client, compartments):
value = {
'id': str(pg.id),
'display_name': self.get_value(pg.display_name),
- 'time_created': self.get_value(pg.time_created)[0:16],
- 'time_updated': self.get_value(pg.time_updated)[0:16],
+ 'time_created': self.get_date(pg.time_created),
+ 'time_updated': self.get_date(pg.time_updated),
'lifecycle_state': self.get_value(pg.lifecycle_state),
'system_type': self.get_value(pg.system_type),
'instance_count': self.get_value(pg.instance_count),
@@ -12081,8 +12145,8 @@ def __load_database_postgresql(self, postgresql_client, compartments):
'display_name': self.get_value(ins.display_name),
'availability_domain': self.get_value(ins.availability_domain),
'lifecycle_state': self.get_value(ins.lifecycle_state),
- 'time_created': self.get_value(ins.time_created),
- 'time_updated': self.get_value(ins.time_updated)
+ 'time_created': self.get_date(ins.time_created),
+ 'time_updated': self.get_date(ins.time_updated)
})
value['admin_username'] = self.get_value(pgv.admin_username)
@@ -12102,14 +12166,15 @@ def __load_database_postgresql(self, postgresql_client, compartments):
# network_details
if pgv.network_details:
value['network_subnet_id'] = self.get_value(pgv.network_details.subnet_id)
+ value['network_subnet_name'] = self.get_network_subnet(pgv.network_details.subnet_id)
value['network_primary_db_endpoint_private_ip'] = self.get_value(pgv.network_details.primary_db_endpoint_private_ip)
if pgv.network_details.nsg_ids:
- value['network_nsg_ids'] = pgv.network_details.nsg_ids
+ value['network_nsg_ids'] = self.get_values(pgv.network_details.nsg_ids)
value['network_nsg_names'] = self.__load_core_network_get_nsg_names(pgv.network_details.nsg_ids)
# management_policy
if pgv.management_policy:
- value['management_maintenance_window_start'] = self.get_value(pgv.management_policy.maintenance_window_start)[0:16]
+ value['management_maintenance_window_start'] = self.get_date(pgv.management_policy.maintenance_window_start)
value['management_backup_policy'] = self.get_value(pgv.management_policy.backup_policy.kind) if pgv.management_policy.backup_policy else ""
# source
@@ -12209,8 +12274,8 @@ def __load_database_postgresql_backups(self, postgresql_client, compartments):
'id': self.get_value(backup.id),
'display_name': self.get_value(backup.display_name),
'db_system_id': self.get_value(backup.db_system_id),
- 'time_created': self.get_value(backup.time_created, trim_date=True),
- 'time_updated': self.get_value(backup.time_updated, trim_date=True),
+ 'time_created': self.get_date(backup.time_created),
+ 'time_updated': self.get_date(backup.time_updated),
'lifecycle_state': self.get_value(backup.lifecycle_state),
'lifecycle_details': self.get_value(backup.lifecycle_details),
'source_type': self.get_value(backup.source_type),
@@ -12611,8 +12676,8 @@ def __load_datasafe_alert_policies(self, datasafe_client, compartment):
'alert_policy_type': self.get_value(val.alert_policy_type),
'severity': self.get_value(val.severity),
'is_user_defined': self.get_value(val.is_user_defined),
- 'time_created': self.get_value(val.time_created, trim_date=True),
- 'time_updated': self.get_value(val.time_updated, trim_date=True),
+ 'time_created': self.get_date(val.time_created),
+ 'time_updated': self.get_date(val.time_updated),
'lifecycle_state': self.get_value(val.lifecycle_state),
'defined_tags': [] if val.defined_tags is None else val.defined_tags,
'freeform_tags': [] if val.freeform_tags is None else val.freeform_tags
@@ -12680,7 +12745,7 @@ def __load_datasafe_audit_policies(self, datasafe_client, compartment):
'partially_enabled_msg': self.get_value(spec.partially_enabled_msg)
} for spec in val.audit_specifications] if val.audit_specifications else [],
'is_data_safe_service_account_excluded': self.get_value(val.is_data_safe_service_account_excluded),
- 'time_created': self.get_value(val.time_created, trim_date=True),
+ 'time_created': self.get_date(val.time_created),
'lifecycle_state': self.get_value(val.lifecycle_state),
'lifecycle_details': self.get_value(val.lifecycle_details),
'defined_tags': [] if val.defined_tags is None else val.defined_tags,
@@ -12738,7 +12803,7 @@ def __load_datasafe_audit_profiles(self, datasafe_client, compartment):
'online_months': self.get_value(val.online_months),
'offline_months': self.get_value(val.offline_months),
'target_id': self.get_value(val.target_id),
- 'time_created': self.get_value(val.time_created, trim_date=True),
+ 'time_created': self.get_date(val.time_created),
'lifecycle_state': self.get_value(val.lifecycle_state),
'lifecycle_details': self.get_value(val.lifecycle_details),
'defined_tags': [] if val.defined_tags is None else val.defined_tags,
@@ -12794,7 +12859,7 @@ def __load_datasafe_private_endpoints(self, datasafe_client, compartment):
'subnet_id': self.get_value(val.subnet_id),
'subnet_name': self.get_network_subnet(val.subnet_id, detailed=True),
'vcn_id': self.get_value(val.vcn_id),
- 'time_created': self.get_value(val.time_created, trim_date=True),
+ 'time_created': self.get_date(val.time_created),
'lifecycle_state': self.get_value(val.lifecycle_state),
'lifecycle_details': "",
'defined_tags': [] if val.defined_tags is None else val.defined_tags,
@@ -12845,7 +12910,7 @@ def __load_datasafe_onprem_connectors(self, datasafe_client, compartment):
'id': self.get_value(val.id),
'display_name': self.get_value(val.display_name),
'description': self.get_value(val.description),
- 'time_created': self.get_value(val.time_created, trim_date=True),
+ 'time_created': self.get_date(val.time_created),
'lifecycle_state': self.get_value(val.lifecycle_state),
'lifecycle_details': self.get_value(val.lifecycle_details),
'defined_tags': [] if val.defined_tags is None else val.defined_tags,
@@ -12981,7 +13046,7 @@ def __load_datasafe_security_assessments(self, datasafe_client, compartment):
'statistics': self.__get_datasafe_security_statistics(val.statistics),
# 'target_ids': self.get_values(val.target_ids),
'triggered_by': self.get_value(val.triggered_by),
- 'time_created': self.get_value(val.time_created),
+ 'time_created': self.get_date(val.time_created),
'lifecycle_state': self.get_value(val.lifecycle_state),
'lifecycle_details': self.get_value(val.lifecycle_details),
'defined_tags': [] if val.defined_tags is None else val.defined_tags,
@@ -13043,7 +13108,7 @@ def __load_datasafe_user_assessments(self, datasafe_client, compartment):
'statistics': self.__get_datasafe_map(val.statistics),
# 'target_ids': self.get_values(val.target_ids),
'triggered_by': self.get_value(val.triggered_by),
- 'time_created': self.get_value(val.time_created, trim_date=True),
+ 'time_created': self.get_date(val.time_created),
'lifecycle_state': self.get_value(val.lifecycle_state),
'lifecycle_details': self.get_value(val.lifecycle_details),
'defined_tags': [] if val.defined_tags is None else val.defined_tags,
@@ -13103,7 +13168,7 @@ def __load_datasafe_targets(self, datasafe_client, compartment):
'infrastructure_type': self.get_value(tbs.infrastructure_type),
'associated_resource_ids': [] if tbs.associated_resource_ids is None else tbs.associated_resource_ids,
'associated_resource_names': [],
- 'time_created': self.get_value(tbs.time_created),
+ 'time_created': self.get_date(tbs.time_created),
'lifecycle_state': self.get_value(tbs.lifecycle_state),
'lifecycle_details': self.get_value(tbs.lifecycle_details),
'defined_tags': [] if tbs.defined_tags is None else tbs.defined_tags,
@@ -13156,7 +13221,7 @@ def __load_datasafe_main(self, datasafe_client, compartments):
'online_retention_period': self.get_value(config.global_settings.online_retention_period) if config.global_settings else "",
'is_enabled': self.get_value(config.is_enabled),
'lifecycle_state': self.get_value(config.lifecycle_state),
- 'time_enabled': self.get_value(config.time_enabled, trim_date=True),
+ 'time_enabled': self.get_date(config.time_enabled),
'url': self.get_value(config.url),
'defined_tags': [] if config.defined_tags is None else config.defined_tags,
'freeform_tags': [] if config.freeform_tags is None else config.freeform_tags,
@@ -13402,11 +13467,9 @@ def __load_container_clusters(self, container_client, compartments):
if arr.endpoint_config:
val['endpoint_is_public_ip_enabled'] = self.get_value(arr.endpoint_config.is_public_ip_enabled)
val['endpoint_subnet_id'] = self.get_value(arr.endpoint_config.subnet_id)
- if arr.endpoint_config.subnet_id:
- val['endpoint_subnet_name'] = self.get_network_subnet(arr.endpoint_config.subnet_id)
- val['endpoint_nsg_ids'] = arr.endpoint_config.nsg_ids
- if arr.endpoint_config.nsg_ids:
- val['endpoint_nsg_names'] = self.__load_core_network_get_nsg_names(arr.endpoint_config.nsg_ids)
+ val['endpoint_subnet_name'] = self.get_network_subnet(arr.endpoint_config.subnet_id)
+ val['endpoint_nsg_ids'] = self.get_values(arr.endpoint_config.nsg_ids)
+ val['endpoint_nsg_names'] = self.__load_core_network_get_nsg_names(arr.endpoint_config.nsg_ids)
# options
if arr.options:
@@ -13422,9 +13485,9 @@ def __load_container_clusters(self, container_client, compartments):
# metadata
if arr.metadata:
- val['time_created'] = self.get_value(arr.metadata.time_created)[0:16]
- val['time_deleted'] = self.get_value(arr.metadata.time_deleted)[0:16]
- val['time_updated'] = self.get_value(arr.metadata.time_updated)[0:16]
+ val['time_created'] = self.get_date(arr.metadata.time_created)
+ val['time_deleted'] = self.get_date(arr.metadata.time_deleted)
+ val['time_updated'] = self.get_date(arr.metadata.time_updated)
val['created_by_user_id'] = self.get_value(arr.metadata.created_by_user_id)
val['deleted_by_user_id'] = self.get_value(arr.metadata.deleted_by_user_id)
val['updated_by_user_id'] = self.get_value(arr.metadata.updated_by_user_id)
@@ -13743,26 +13806,28 @@ def __load_api_gateways(self, api_client, compartments):
if not self.check_lifecycle_state_active(apig.lifecycle_state):
continue
- val = {'id': str(apig.id),
- 'display_name': self.get_value(apig.display_name),
- 'endpoint_type': self.get_value(apig.endpoint_type),
- 'hostname': self.get_value(apig.hostname),
- 'subnet_id': self.get_value(apig.subnet_id),
- 'subnet_name': "",
- 'nsg_ids': self.get_value(apig.network_security_group_ids),
- 'nsg_names': str(self.__load_core_network_get_nsg_names(apig.network_security_group_ids)) if apig.network_security_group_ids else "",
- 'time_created': self.get_value(apig.time_created),
- 'time_updated': self.get_value(apig.time_updated),
- 'lifecycle_state': self.get_value(apig.lifecycle_state),
- 'certificate_id': self.get_value(apig.certificate_id),
- 'compartment_name': str(compartment['name']),
- 'compartment_id': str(compartment['id']),
- 'compartment_path': str(compartment['path']),
- 'defined_tags': [] if apig.defined_tags is None else apig.defined_tags,
- 'freeform_tags': [] if apig.freeform_tags is None else apig.freeform_tags,
- 'region_name': str(self.config['region']),
- 'deployments': []
- }
+ val = {
+ 'id': str(apig.id),
+ 'display_name': self.get_value(apig.display_name),
+ 'endpoint_type': self.get_value(apig.endpoint_type),
+ 'hostname': self.get_value(apig.hostname),
+ 'subnet_id': self.get_value(apig.subnet_id),
+ 'subnet_name': self.get_network_subnet(apig.subnet_id),
+ 'subnet': self.get_network_subnet(apig.subnet_id, detailed=True),
+ 'nsg_ids': self.get_values(apig.network_security_group_ids),
+ 'nsg_names': self.__load_core_network_get_nsg_names(apig.network_security_group_ids),
+ 'time_created': self.get_date(apig.time_created),
+ 'time_updated': self.get_date(apig.time_updated),
+ 'lifecycle_state': self.get_value(apig.lifecycle_state),
+ 'certificate_id': self.get_value(apig.certificate_id),
+ 'compartment_name': str(compartment['name']),
+ 'compartment_id': str(compartment['id']),
+ 'compartment_path': str(compartment['path']),
+ 'defined_tags': [] if apig.defined_tags is None else apig.defined_tags,
+ 'freeform_tags': [] if apig.freeform_tags is None else apig.freeform_tags,
+ 'region_name': str(self.config['region']),
+ 'deployments': []
+ }
# add the data
cnt += 1
@@ -13929,8 +13994,8 @@ def __load_functions_applications(self, function_client, compartments):
'trace_config_is_enabled': self.get_value(app.trace_config.is_enabled) if app.trace_config else "",
'trace_config_domain_id': self.get_value(app.trace_config.domain_id) if app.trace_config else "",
'image_policy_is_enabled': self.get_value(app.image_policy_config.is_policy_enabled) if app.image_policy_config else "",
- 'time_created': self.get_value(app.time_created, trim_date=True),
- 'time_updated': self.get_value(app.time_updated, trim_date=True),
+ 'time_created': self.get_date(app.time_created),
+ 'time_updated': self.get_date(app.time_updated),
'compartment_name': str(compartment['name']),
'compartment_id': str(compartment['id']),
'compartment_path': str(compartment['path']),
@@ -13988,8 +14053,8 @@ def __load_functions_functions(self, function_client, application_id):
'memory_in_mbs': self.get_value(fun.memory_in_mbs),
'timeout_in_seconds': self.get_value(fun.timeout_in_seconds),
'invoke_endpoint': self.get_value(fun.invoke_endpoint),
- 'time_created': self.get_value(fun.time_created),
- 'time_updated': self.get_value(fun.time_updated),
+ 'time_created': self.get_date(fun.time_created),
+ 'time_updated': self.get_date(fun.time_updated),
'source_type': self.get_value(fun.source_details.source_type) if fun.source_details else "",
'provisioned_strategy': self.get_value(fun.provisioned_concurrency_config.strategy) if fun.provisioned_concurrency_config else "",
'trace_config_is_enabled': self.get_value(fun.trace_config.is_enabled) if fun.trace_config else "",
@@ -14102,7 +14167,7 @@ def __load_resource_management_stacks(self, orm, compartments):
'operation': str(job.operation),
'lifecycle_state': str(job.lifecycle_state),
'time_finished': self.get_value(job.time_finished),
- 'time_created': self.get_value(job.time_created)}
+ 'time_created': self.get_date(job.time_created)}
datajob.append(jobval)
# add the jobs to the array
@@ -14177,7 +14242,7 @@ def __load_email_senders(self, email, compartments):
val = {'id': str(sender.id),
'email_address': self.get_value(sender.email_address),
'lifecycle_state': self.get_value(sender.lifecycle_state),
- 'time_created': self.get_value(sender.time_created),
+ 'time_created': self.get_date(sender.time_created),
'compartment_name': str(compartment['name']),
'compartment_id': str(compartment['id']),
'compartment_path': str(compartment['path']),
@@ -14254,7 +14319,7 @@ def __load_email_suppressions(self, email, compartments):
for supp in suppressions:
val = {'id': str(supp.id),
'email_address': self.get_value(supp.email_address),
- 'time_created': self.get_value(supp.time_created),
+ 'time_created': self.get_date(supp.time_created),
'reason': self.get_value(supp.reason),
'compartment_name': str(compartment['name']),
'compartment_id': str(compartment['id']),
@@ -15860,8 +15925,8 @@ def __load_data_ai_catalog(self, dc_client, compartments):
val = {
'id': str(arr.id),
'display_name': self.get_value(arr.display_name),
- 'time_created': self.get_value(arr.time_created),
- 'time_updated': self.get_value(arr.time_updated),
+ 'time_created': self.get_date(arr.time_created),
+ 'time_updated': self.get_date(arr.time_updated),
'number_of_objects': self.get_value(arr.number_of_objects),
'lifecycle_state': self.get_value(arr.lifecycle_state),
'lifecycle_details': self.get_value(arr.lifecycle_details),
@@ -15956,7 +16021,7 @@ def __load_data_ai_science(self, ds_client, compartments):
val = {
'id': str(arr.id),
'display_name': self.get_value(arr.display_name),
- 'time_created': self.get_value(arr.time_created),
+ 'time_created': self.get_date(arr.time_created),
'description': self.get_value(arr.description),
'created_by': self.get_value(arr.created_by),
'lifecycle_state': self.get_value(arr.lifecycle_state),
@@ -16050,8 +16115,8 @@ def __load_data_ai_flow(self, df_client, compartments):
val = {
'id': str(arr.id),
'display_name': self.get_value(arr.display_name),
- 'time_created': self.get_value(arr.time_created),
- 'time_updated': self.get_value(arr.time_updated),
+ 'time_created': self.get_date(arr.time_created),
+ 'time_updated': self.get_date(arr.time_updated),
'language': self.get_value(arr.language),
'lifecycle_state': self.get_value(arr.lifecycle_state),
'owner_principal_id': self.get_value(arr.owner_principal_id),
@@ -16148,8 +16213,8 @@ def __load_data_ai_oda(self, oda_client, compartments):
'display_name': self.get_value(oda.display_name),
'description': self.get_value(oda.description),
'shape_name': self.get_value(oda.shape_name),
- 'time_created': self.get_value(oda.time_created),
- 'time_updated': self.get_value(oda.time_updated),
+ 'time_created': self.get_date(oda.time_created),
+ 'time_updated': self.get_date(oda.time_updated),
'lifecycle_state': self.get_value(oda.lifecycle_state),
'lifecycle_sub_state': self.get_value(oda.lifecycle_sub_state),
'state_message': self.get_value(oda.state_message),
@@ -16253,7 +16318,7 @@ def __load_data_ai_bds(self, bds_client, compartments):
'cluster_profile': self.get_value(bds.cluster_profile),
'lifecycle_state': self.get_value(bds.lifecycle_state),
'is_cloud_sql_configured': self.get_value(bds.is_cloud_sql_configured),
- 'time_created': self.get_value(bds.time_created),
+ 'time_created': self.get_date(bds.time_created),
'compartment_name': str(compartment['name']),
'compartment_path': str(compartment['path']),
'compartment_id': str(compartment['id']),
@@ -16334,8 +16399,8 @@ def __load_data_ai_bds(self, bds_client, compartments):
'image_id': self.get_value(nd.image_id),
'availability_domain': self.get_value(nd.availability_domain),
'fault_domain': self.get_value(nd.fault_domain),
- 'time_created': self.get_value(nd.time_created),
- 'time_updated': self.get_value(nd.time_updated),
+ 'time_created': self.get_date(nd.time_created),
+ 'time_updated': self.get_date(nd.time_updated),
'ocpus': self.get_value(nd.ocpus),
'memory_in_gbs': self.get_value(nd.memory_in_gbs),
'nvmes': self.get_value(nd.nvmes),
@@ -16374,8 +16439,8 @@ def __load_data_ai_bds(self, bds_client, compartments):
'display_name': self.get_value(ats.display_name),
'lifecycle_state': self.get_value(ats.lifecycle_state),
'node_type': self.get_value(ats.node_type),
- 'time_created': self.get_value(ats.time_created, trim_date=True),
- 'time_updated': self.get_value(ats.time_updated, trim_date=True),
+ 'time_created': self.get_date(ats.time_created),
+ 'time_updated': self.get_date(ats.time_updated),
'policy_type': self.get_value(ats.policy_details.policy_type) if ats.policy_details else "",
'policy_trigger_type': self.get_value(ats.policy_details.trigger_type) if ats.policy_details else "",
'policy_action_type': self.get_value(ats.policy_details.action_type) if ats.policy_details else ""
@@ -16468,8 +16533,8 @@ def __load_data_ai_data_integration(self, di_client, compartments):
'description': self.get_value(di.description),
'display_name': self.get_value(di.display_name),
'lifecycle_state': self.get_value(di.lifecycle_state),
- 'time_created': self.get_value(di.time_created),
- 'time_updated': self.get_value(di.time_updated),
+ 'time_created': self.get_date(di.time_created),
+ 'time_updated': self.get_date(di.time_updated),
'compartment_name': str(compartment['name']),
'compartment_path': str(compartment['path']),
'compartment_id': str(compartment['id']),
@@ -16567,8 +16632,8 @@ def __load_data_ai_data_genai(self, ai_client, compartments):
'display_name': self.get_value(arr.display_name),
'lifecycle_state': self.get_value(arr.lifecycle_state),
'type': self.get_value(arr.type),
- 'time_created': self.get_value(arr.time_created),
- 'time_updated': self.get_value(arr.time_updated),
+ 'time_created': self.get_date(arr.time_created),
+ 'time_updated': self.get_date(arr.time_updated),
'unit_count': self.get_value(arr.unit_count),
'unit_shape': self.get_value(arr.unit_shape),
'capacity_type': self.get_value(arr.capacity_type.unit_shape) if arr.capacity_type else "",
@@ -16799,8 +16864,8 @@ def __load_paas_ocvs(self, ocvs_client, cluster_client, esxi_client, virtual_net
'time_hcx_billing_cycle_end': self.get_value(vmware.time_hcx_billing_cycle_end),
'time_hcx_license_status_updated': self.get_value(vmware.time_hcx_license_status_updated),
'is_single_host_sddc': self.get_value(vmware.is_single_host_sddc) if vmware.is_single_host_sddc else "False",
- 'time_created': self.get_value(vmware.time_created, trim_date=True),
- 'time_updated': self.get_value(vmware.time_updated, trim_date=True),
+ 'time_created': self.get_date(vmware.time_created),
+ 'time_updated': self.get_date(vmware.time_updated),
'lifecycle_state': self.get_value(vmware.lifecycle_state),
'sum_info': "PaaS OCVS SDDC Clusters",
'sum_size_gb': self.get_value(vmware.clusters_count),
@@ -16868,8 +16933,8 @@ def __load_paas_ocvs(self, ocvs_client, cluster_client, esxi_client, virtual_net
'esxi_hosts_count': self.get_value(cl.esxi_hosts_count),
'initial_commitment': self.get_value(cl.initial_commitment),
'workload_network_cidr': self.get_value(cl.workload_network_cidr),
- 'time_created': self.get_value(cl.time_created, trim_date=True),
- 'time_updated': self.get_value(cl.time_updated, trim_date=True),
+ 'time_created': self.get_date(cl.time_created),
+ 'time_updated': self.get_date(cl.time_updated),
'lifecycle_state': self.get_value(cl.lifecycle_state),
'initial_host_shape_name': self.get_value(cl.initial_host_shape_name),
'initial_host_ocpu_count': self.get_value(cl.initial_host_ocpu_count),
@@ -16915,15 +16980,15 @@ def __load_paas_ocvs(self, ocvs_client, cluster_client, esxi_client, virtual_net
'cluster_id': self.get_value(esxi.cluster_id),
'display_name': self.get_value(esxi.display_name),
'compute_instance_id': self.get_value(esxi.compute_instance_id),
- 'time_created': self.get_value(esxi.time_created, trim_date=True),
- 'time_updated': self.get_value(esxi.time_updated, trim_date=True),
+ 'time_created': self.get_date(esxi.time_created),
+ 'time_updated': self.get_date(esxi.time_updated),
'lifecycle_state': self.get_value(esxi.lifecycle_state),
'current_commitment': self.get_value(esxi.current_commitment),
'next_commitment': self.get_value(esxi.next_commitment),
'billing_contract_end_date': self.get_value(esxi.billing_contract_end_date),
'failed_esxi_host_id': self.get_value(esxi.failed_esxi_host_id),
'replacement_esxi_host_id': self.get_value(esxi.replacement_esxi_host_id),
- 'grace_period_end_date': self.get_value(esxi.grace_period_end_date, trim_date=True),
+ 'grace_period_end_date': self.get_date(esxi.grace_period_end_date),
'vmware_software_version': self.get_value(esxi.vmware_software_version),
'non_upgraded_esxi_host_id': self.get_value(esxi.non_upgraded_esxi_host_id),
'upgraded_replacement_esxi_host_id': self.get_value(esxi.upgraded_replacement_esxi_host_id),
@@ -18060,7 +18125,7 @@ def __load_security_kms_keys(self, search_client):
'id': self.get_value(item.identifier),
'compartment_id': self.get_value(item.compartment_id),
'name': self.get_value(item.display_name),
- 'time_created': self.get_value(item.time_created),
+ 'time_created': self.get_date(item.time_created),
'freeform_tags': [] if item.freeform_tags is None else item.freeform_tags,
'compartment_name': str(compartment['name']),
'compartment_path': str(compartment['path']),
@@ -18560,7 +18625,7 @@ def __load_security_log_unified_agents(self, log_client, compartments):
'id': str(item.id),
'display_name': self.get_value(item.display_name),
'description': self.get_value(item.description),
- 'time_created': self.get_value(item.time_created),
+ 'time_created': self.get_date(item.time_created),
'time_last_modified': self.get_value(item.time_last_modified),
'is_enabled': self.get_value(item.is_enabled),
'configuration_type': self.get_value(item.configuration_type),
@@ -18790,8 +18855,8 @@ def __load_certificate_certificates(self, cert_client, compartments):
'issuer_certificate_authority_id': self.get_value(crt.issuer_certificate_authority_id),
'name': self.get_value(crt.name),
'description': self.get_value(crt.description),
- 'time_created': self.get_value(crt.time_created, trim_date=True),
- 'time_of_deletion': self.get_value(crt.time_of_deletion, trim_date=True),
+ 'time_created': self.get_date(crt.time_created),
+ 'time_of_deletion': self.get_date(crt.time_of_deletion),
'lifecycle_state': self.get_value(crt.lifecycle_state),
'certificate_rules': [{
'rule_type': self.get_value(y.rule_type),
@@ -18800,14 +18865,14 @@ def __load_certificate_certificates(self, cert_client, compartments):
} for y in crt.certificate_rules] if crt.certificate_rules else [],
'current_certificate_id': self.get_value(vs.certificate_id) if vs else "",
'current_serial_number': self.get_value(vs.serial_number) if vs else "",
- 'current_time_created': self.get_value(vs.time_created, trim_date=True) if vs else "",
+ 'current_time_created': self.get_date(vs.time_created) if vs else "",
'current_version_number': self.get_value(vs.version_number) if vs else "",
'current_issuer_ca_version_number': self.get_value(vs.issuer_ca_version_number) if vs else "",
'current_version_name': self.get_value(vs.version_name) if vs else "",
'current_time_of_deletion': self.get_value(vs.time_of_deletion) if vs else "",
- 'current_validity_not_before': self.get_value(vs.validity.time_of_validity_not_before, trim_date=True) if vs and vs.validity else "",
- 'current_validity_not_after': self.get_value(vs.validity.time_of_validity_not_after, trim_date=True) if vs and vs.validity else "",
- 'current_time_of_revocation': self.get_value(vs.revocation_status.time_of_revocation, trim_date=True) if vs and vs.revocation_status else "",
+ 'current_validity_not_before': self.get_date(vs.validity.time_of_validity_not_before) if vs and vs.validity else "",
+ 'current_validity_not_after': self.get_date(vs.validity.time_of_validity_not_after) if vs and vs.validity else "",
+ 'current_time_of_revocation': self.get_date(vs.revocation_status.time_of_revocation) if vs and vs.revocation_status else "",
'current_revocation_reason': self.get_value(vs.revocation_status.revocation_reason) if vs and vs.revocation_status else "",
'common_name': self.get_value(crt.subject.common_name) if crt.subject else "",
'country': self.get_value(crt.subject.country) if crt.subject else "",
@@ -18916,7 +18981,7 @@ def __load_certificate_associations(self, cert_client, compartments):
val = {
'id': self.get_value(crt.id),
'name': self.get_value(crt.name),
- 'time_created': self.get_value(crt.time_created, trim_date=True),
+ 'time_created': self.get_date(crt.time_created),
'lifecycle_state': self.get_value(crt.lifecycle_state),
'certificates_resource_id': self.get_value(crt.certificates_resource_id),
'associated_resource_id': self.get_value(crt.associated_resource_id),
@@ -19006,7 +19071,7 @@ def __load_certificate_ca_bundles(self, cert_client, compartments):
'id': self.get_value(crt.id),
'name': self.get_value(crt.name),
'description': self.get_value(crt.description),
- 'time_created': self.get_value(crt.time_created, trim_date=True),
+ 'time_created': self.get_date(crt.time_created),
'lifecycle_state': self.get_value(crt.lifecycle_state),
'defined_tags': [] if crt.defined_tags is None else crt.defined_tags,
'freeform_tags': [] if crt.freeform_tags is None else crt.freeform_tags,
@@ -19099,8 +19164,8 @@ def __load_certificate_authorities(self, cert_client, compartments):
'issuer_certificate_authority_id': self.get_value(crt.issuer_certificate_authority_id),
'name': self.get_value(crt.name),
'description': self.get_value(crt.description),
- 'time_created': self.get_value(crt.time_created, trim_date=True),
- 'time_of_deletion': self.get_value(crt.time_of_deletion, trim_date=True),
+ 'time_created': self.get_date(crt.time_created),
+ 'time_of_deletion': self.get_date(crt.time_of_deletion),
'kms_key_id': self.get_value(crt.kms_key_id),
'lifecycle_state': self.get_value(crt.lifecycle_state),
'certificate_authority_rules': [{
@@ -19111,13 +19176,13 @@ def __load_certificate_authorities(self, cert_client, compartments):
'current_certificate_authority_id': self.get_value(vs.certificate_authority_id) if vs else "",
'current_issuer_ca_version_number': self.get_value(vs.issuer_ca_version_number) if vs else "",
'current_serial_number': self.get_value(vs.serial_number) if vs else "",
- 'current_time_created': self.get_value(vs.time_created, trim_date=True) if vs else "",
+ 'current_time_created': self.get_date(vs.time_created) if vs else "",
'current_version_number': self.get_value(vs.version_number) if vs else "",
'current_version_name': self.get_value(vs.version_name) if crt.current_version_summary else "",
- 'current_time_of_deletion': self.get_value(vs.time_of_deletion, trim_date=True) if crt.current_version_summary else "",
- 'current_validity_not_before': self.get_value(vs.validity.time_of_validity_not_before, trim_date=True) if vs and vs.validity else "",
- 'current_validity_not_after': self.get_value(vs.validity.time_of_validity_not_after, trim_date=True) if vs and vs.validity else "",
- 'current_time_of_revocation': self.get_value(vs.revocation_status.time_of_revocation, trim_date=True) if vs and vs.revocation_status else "",
+ 'current_time_of_deletion': self.get_date(vs.time_of_deletion) if crt.current_version_summary else "",
+ 'current_validity_not_before': self.get_date(vs.validity.time_of_validity_not_before) if vs and vs.validity else "",
+ 'current_validity_not_after': self.get_date(vs.validity.time_of_validity_not_after) if vs and vs.validity else "",
+ 'current_time_of_revocation': self.get_date(vs.revocation_status.time_of_revocation) if vs and vs.revocation_status else "",
'current_revocation_reason': self.get_value(vs.revocation_status.revocation_reason) if vs and vs.revocation_status else "",
'common_name': self.get_value(crt.subject.common_name) if crt.subject else "",
'country': self.get_value(crt.subject.country) if crt.subject else "",
@@ -19255,8 +19320,8 @@ def __load_announcements(self, announcement_client, tenancy_id):
'affected_regions': str(', '.join(x for x in ann.affected_regions)),
'announcement_type': self.get_value(ann.announcement_type),
'is_banner': self.get_value(ann.is_banner),
- 'time_created': self.get_value(ann.time_created, trim_date=True),
- 'time_updated': self.get_value(ann.time_updated, trim_date=True),
+ 'time_created': self.get_date(ann.time_created),
+ 'time_updated': self.get_date(ann.time_updated),
'environment_name': self.get_value(ann.environment_name),
'platform_type': self.get_value(ann.platform_type),
'chain_id': self.get_value(ann.chain_id),
@@ -21341,7 +21406,7 @@ def load_identity_domains_main(self, compartments):
'type': self.get_value(domain.type),
'license_type': self.get_value(domain.license_type),
'is_hidden_on_login': self.get_value(domain.is_hidden_on_login),
- 'time_created': self.get_value(domain.time_created)[0:16],
+ 'time_created': self.get_date(domain.time_created),
'lifecycle_state': self.get_value(domain.lifecycle_state),
'defined_tags': [] if domain.defined_tags is None else domain.defined_tags,
'freeform_tags': [] if domain.freeform_tags is None else domain.freeform_tags,
@@ -21354,6 +21419,8 @@ def load_identity_domains_main(self, compartments):
'authentication_factor_settings': [],
'password_policies': [],
'policies': [],
+ 'rules': [],
+ 'conditions': [],
'compartment_name': str(compartment['name']),
'compartment_id': str(compartment['id']),
'compartment_path': str(compartment['path'])
diff --git a/src/oci/ai_language/models/__init__.py b/src/oci/ai_language/models/__init__.py
index 67f8a361e6..72ba824465 100644
--- a/src/oci/ai_language/models/__init__.py
+++ b/src/oci/ai_language/models/__init__.py
@@ -69,6 +69,7 @@
from .evaluation_results import EvaluationResults
from .health_entity import HealthEntity
from .health_entity_document_result import HealthEntityDocumentResult
+from .health_nlu_model_details import HealthNluModelDetails
from .hierarchical_entity import HierarchicalEntity
from .input_configuration import InputConfiguration
from .input_location import InputLocation
@@ -80,6 +81,7 @@
from .location_details import LocationDetails
from .mel_concept import MelConcept
from .mel_concept_details import MelConceptDetails
+from .meta_info import MetaInfo
from .model import Model
from .model_collection import ModelCollection
from .model_details import ModelDetails
@@ -111,6 +113,7 @@
from .pre_trained_sentiment_analysis_model_details import PreTrainedSentimentAnalysisModelDetails
from .pre_trained_summarization import PreTrainedSummarization
from .pre_trained_text_classification_model_details import PreTrainedTextClassificationModelDetails
+from .pre_trained_translation_model_details import PreTrainedTranslationModelDetails
from .pre_trained_universal_model import PreTrainedUniversalModel
from .profile import Profile
from .project import Project
@@ -210,6 +213,7 @@
"EvaluationResults": EvaluationResults,
"HealthEntity": HealthEntity,
"HealthEntityDocumentResult": HealthEntityDocumentResult,
+ "HealthNluModelDetails": HealthNluModelDetails,
"HierarchicalEntity": HierarchicalEntity,
"InputConfiguration": InputConfiguration,
"InputLocation": InputLocation,
@@ -221,6 +225,7 @@
"LocationDetails": LocationDetails,
"MelConcept": MelConcept,
"MelConceptDetails": MelConceptDetails,
+ "MetaInfo": MetaInfo,
"Model": Model,
"ModelCollection": ModelCollection,
"ModelDetails": ModelDetails,
@@ -252,6 +257,7 @@
"PreTrainedSentimentAnalysisModelDetails": PreTrainedSentimentAnalysisModelDetails,
"PreTrainedSummarization": PreTrainedSummarization,
"PreTrainedTextClassificationModelDetails": PreTrainedTextClassificationModelDetails,
+ "PreTrainedTranslationModelDetails": PreTrainedTranslationModelDetails,
"PreTrainedUniversalModel": PreTrainedUniversalModel,
"Profile": Profile,
"Project": Project,
diff --git a/src/oci/ai_language/models/batch_detect_dominant_language_details.py b/src/oci/ai_language/models/batch_detect_dominant_language_details.py
index 5b705c7037..745ee281f5 100644
--- a/src/oci/ai_language/models/batch_detect_dominant_language_details.py
+++ b/src/oci/ai_language/models/batch_detect_dominant_language_details.py
@@ -20,6 +20,10 @@ def __init__(self, **kwargs):
Initializes a new BatchDetectDominantLanguageDetails object with values from keyword arguments.
The following keyword arguments are supported (corresponding to the getters/setters of this class):
+ :param alias:
+ The value to assign to the alias property of this BatchDetectDominantLanguageDetails.
+ :type alias: str
+
:param should_ignore_transliteration:
The value to assign to the should_ignore_transliteration property of this BatchDetectDominantLanguageDetails.
:type should_ignore_transliteration: bool
@@ -42,6 +46,7 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
+ 'alias': 'str',
'should_ignore_transliteration': 'bool',
'chars_to_consider': 'int',
'endpoint_id': 'str',
@@ -50,6 +55,7 @@ def __init__(self, **kwargs):
}
self.attribute_map = {
+ 'alias': 'alias',
'should_ignore_transliteration': 'shouldIgnoreTransliteration',
'chars_to_consider': 'charsToConsider',
'endpoint_id': 'endpointId',
@@ -57,12 +63,37 @@ def __init__(self, **kwargs):
'documents': 'documents'
}
+ self._alias = None
self._should_ignore_transliteration = None
self._chars_to_consider = None
self._endpoint_id = None
self._compartment_id = None
self._documents = None
+ @property
+ def alias(self):
+ """
+ Gets the alias of this BatchDetectDominantLanguageDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :return: The alias of this BatchDetectDominantLanguageDetails.
+ :rtype: str
+ """
+ return self._alias
+
+ @alias.setter
+ def alias(self, alias):
+ """
+ Sets the alias of this BatchDetectDominantLanguageDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :param alias: The alias of this BatchDetectDominantLanguageDetails.
+ :type: str
+ """
+ self._alias = alias
+
@property
def should_ignore_transliteration(self):
"""
diff --git a/src/oci/ai_language/models/batch_detect_health_entity_details.py b/src/oci/ai_language/models/batch_detect_health_entity_details.py
index b96a252124..f0a060a6c2 100644
--- a/src/oci/ai_language/models/batch_detect_health_entity_details.py
+++ b/src/oci/ai_language/models/batch_detect_health_entity_details.py
@@ -20,6 +20,10 @@ def __init__(self, **kwargs):
Initializes a new BatchDetectHealthEntityDetails object with values from keyword arguments.
The following keyword arguments are supported (corresponding to the getters/setters of this class):
+ :param alias:
+ The value to assign to the alias property of this BatchDetectHealthEntityDetails.
+ :type alias: str
+
:param endpoint_id:
The value to assign to the endpoint_id property of this BatchDetectHealthEntityDetails.
:type endpoint_id: str
@@ -46,6 +50,7 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
+ 'alias': 'str',
'endpoint_id': 'str',
'documents': 'list[TextDocument]',
'link_ontologies': 'list[str]',
@@ -55,6 +60,7 @@ def __init__(self, **kwargs):
}
self.attribute_map = {
+ 'alias': 'alias',
'endpoint_id': 'endpointId',
'documents': 'documents',
'link_ontologies': 'linkOntologies',
@@ -63,6 +69,7 @@ def __init__(self, **kwargs):
'profile': 'profile'
}
+ self._alias = None
self._endpoint_id = None
self._documents = None
self._link_ontologies = None
@@ -70,6 +77,30 @@ def __init__(self, **kwargs):
self._is_detect_relationships = None
self._profile = None
+ @property
+ def alias(self):
+ """
+ Gets the alias of this BatchDetectHealthEntityDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :return: The alias of this BatchDetectHealthEntityDetails.
+ :rtype: str
+ """
+ return self._alias
+
+ @alias.setter
+ def alias(self, alias):
+ """
+ Sets the alias of this BatchDetectHealthEntityDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :param alias: The alias of this BatchDetectHealthEntityDetails.
+ :type: str
+ """
+ self._alias = alias
+
@property
def endpoint_id(self):
"""
diff --git a/src/oci/ai_language/models/batch_detect_language_entities_details.py b/src/oci/ai_language/models/batch_detect_language_entities_details.py
index f5d13f052e..897343f1b0 100644
--- a/src/oci/ai_language/models/batch_detect_language_entities_details.py
+++ b/src/oci/ai_language/models/batch_detect_language_entities_details.py
@@ -20,6 +20,10 @@ def __init__(self, **kwargs):
Initializes a new BatchDetectLanguageEntitiesDetails object with values from keyword arguments.
The following keyword arguments are supported (corresponding to the getters/setters of this class):
+ :param alias:
+ The value to assign to the alias property of this BatchDetectLanguageEntitiesDetails.
+ :type alias: str
+
:param compartment_id:
The value to assign to the compartment_id property of this BatchDetectLanguageEntitiesDetails.
:type compartment_id: str
@@ -34,21 +38,48 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
+ 'alias': 'str',
'compartment_id': 'str',
'endpoint_id': 'str',
'documents': 'list[TextDocument]'
}
self.attribute_map = {
+ 'alias': 'alias',
'compartment_id': 'compartmentId',
'endpoint_id': 'endpointId',
'documents': 'documents'
}
+ self._alias = None
self._compartment_id = None
self._endpoint_id = None
self._documents = None
+ @property
+ def alias(self):
+ """
+ Gets the alias of this BatchDetectLanguageEntitiesDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :return: The alias of this BatchDetectLanguageEntitiesDetails.
+ :rtype: str
+ """
+ return self._alias
+
+ @alias.setter
+ def alias(self, alias):
+ """
+ Sets the alias of this BatchDetectLanguageEntitiesDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :param alias: The alias of this BatchDetectLanguageEntitiesDetails.
+ :type: str
+ """
+ self._alias = alias
+
@property
def compartment_id(self):
"""
diff --git a/src/oci/ai_language/models/batch_detect_language_key_phrases_details.py b/src/oci/ai_language/models/batch_detect_language_key_phrases_details.py
index ae396f7524..6bbde1b6a2 100644
--- a/src/oci/ai_language/models/batch_detect_language_key_phrases_details.py
+++ b/src/oci/ai_language/models/batch_detect_language_key_phrases_details.py
@@ -20,6 +20,10 @@ def __init__(self, **kwargs):
Initializes a new BatchDetectLanguageKeyPhrasesDetails object with values from keyword arguments.
The following keyword arguments are supported (corresponding to the getters/setters of this class):
+ :param alias:
+ The value to assign to the alias property of this BatchDetectLanguageKeyPhrasesDetails.
+ :type alias: str
+
:param endpoint_id:
The value to assign to the endpoint_id property of this BatchDetectLanguageKeyPhrasesDetails.
:type endpoint_id: str
@@ -34,21 +38,48 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
+ 'alias': 'str',
'endpoint_id': 'str',
'compartment_id': 'str',
'documents': 'list[TextDocument]'
}
self.attribute_map = {
+ 'alias': 'alias',
'endpoint_id': 'endpointId',
'compartment_id': 'compartmentId',
'documents': 'documents'
}
+ self._alias = None
self._endpoint_id = None
self._compartment_id = None
self._documents = None
+ @property
+ def alias(self):
+ """
+ Gets the alias of this BatchDetectLanguageKeyPhrasesDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :return: The alias of this BatchDetectLanguageKeyPhrasesDetails.
+ :rtype: str
+ """
+ return self._alias
+
+ @alias.setter
+ def alias(self, alias):
+ """
+ Sets the alias of this BatchDetectLanguageKeyPhrasesDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :param alias: The alias of this BatchDetectLanguageKeyPhrasesDetails.
+ :type: str
+ """
+ self._alias = alias
+
@property
def endpoint_id(self):
"""
diff --git a/src/oci/ai_language/models/batch_detect_language_pii_entities_details.py b/src/oci/ai_language/models/batch_detect_language_pii_entities_details.py
index 915d5bd451..b1373a4791 100644
--- a/src/oci/ai_language/models/batch_detect_language_pii_entities_details.py
+++ b/src/oci/ai_language/models/batch_detect_language_pii_entities_details.py
@@ -20,6 +20,10 @@ def __init__(self, **kwargs):
Initializes a new BatchDetectLanguagePiiEntitiesDetails object with values from keyword arguments.
The following keyword arguments are supported (corresponding to the getters/setters of this class):
+ :param alias:
+ The value to assign to the alias property of this BatchDetectLanguagePiiEntitiesDetails.
+ :type alias: str
+
:param endpoint_id:
The value to assign to the endpoint_id property of this BatchDetectLanguagePiiEntitiesDetails.
:type endpoint_id: str
@@ -42,6 +46,7 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
+ 'alias': 'str',
'endpoint_id': 'str',
'compartment_id': 'str',
'documents': 'list[TextDocument]',
@@ -50,6 +55,7 @@ def __init__(self, **kwargs):
}
self.attribute_map = {
+ 'alias': 'alias',
'endpoint_id': 'endpointId',
'compartment_id': 'compartmentId',
'documents': 'documents',
@@ -57,12 +63,37 @@ def __init__(self, **kwargs):
'profile': 'profile'
}
+ self._alias = None
self._endpoint_id = None
self._compartment_id = None
self._documents = None
self._masking = None
self._profile = None
+ @property
+ def alias(self):
+ """
+ Gets the alias of this BatchDetectLanguagePiiEntitiesDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :return: The alias of this BatchDetectLanguagePiiEntitiesDetails.
+ :rtype: str
+ """
+ return self._alias
+
+ @alias.setter
+ def alias(self, alias):
+ """
+ Sets the alias of this BatchDetectLanguagePiiEntitiesDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :param alias: The alias of this BatchDetectLanguagePiiEntitiesDetails.
+ :type: str
+ """
+ self._alias = alias
+
@property
def endpoint_id(self):
"""
diff --git a/src/oci/ai_language/models/batch_detect_language_sentiments_details.py b/src/oci/ai_language/models/batch_detect_language_sentiments_details.py
index bb4c6ad980..5358f94262 100644
--- a/src/oci/ai_language/models/batch_detect_language_sentiments_details.py
+++ b/src/oci/ai_language/models/batch_detect_language_sentiments_details.py
@@ -20,6 +20,10 @@ def __init__(self, **kwargs):
Initializes a new BatchDetectLanguageSentimentsDetails object with values from keyword arguments.
The following keyword arguments are supported (corresponding to the getters/setters of this class):
+ :param alias:
+ The value to assign to the alias property of this BatchDetectLanguageSentimentsDetails.
+ :type alias: str
+
:param endpoint_id:
The value to assign to the endpoint_id property of this BatchDetectLanguageSentimentsDetails.
:type endpoint_id: str
@@ -34,21 +38,48 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
+ 'alias': 'str',
'endpoint_id': 'str',
'compartment_id': 'str',
'documents': 'list[TextDocument]'
}
self.attribute_map = {
+ 'alias': 'alias',
'endpoint_id': 'endpointId',
'compartment_id': 'compartmentId',
'documents': 'documents'
}
+ self._alias = None
self._endpoint_id = None
self._compartment_id = None
self._documents = None
+ @property
+ def alias(self):
+ """
+ Gets the alias of this BatchDetectLanguageSentimentsDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :return: The alias of this BatchDetectLanguageSentimentsDetails.
+ :rtype: str
+ """
+ return self._alias
+
+ @alias.setter
+ def alias(self, alias):
+ """
+ Sets the alias of this BatchDetectLanguageSentimentsDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :param alias: The alias of this BatchDetectLanguageSentimentsDetails.
+ :type: str
+ """
+ self._alias = alias
+
@property
def endpoint_id(self):
"""
diff --git a/src/oci/ai_language/models/batch_detect_language_text_classification_details.py b/src/oci/ai_language/models/batch_detect_language_text_classification_details.py
index 5ee44746e8..58931a0732 100644
--- a/src/oci/ai_language/models/batch_detect_language_text_classification_details.py
+++ b/src/oci/ai_language/models/batch_detect_language_text_classification_details.py
@@ -20,6 +20,10 @@ def __init__(self, **kwargs):
Initializes a new BatchDetectLanguageTextClassificationDetails object with values from keyword arguments.
The following keyword arguments are supported (corresponding to the getters/setters of this class):
+ :param alias:
+ The value to assign to the alias property of this BatchDetectLanguageTextClassificationDetails.
+ :type alias: str
+
:param compartment_id:
The value to assign to the compartment_id property of this BatchDetectLanguageTextClassificationDetails.
:type compartment_id: str
@@ -34,21 +38,48 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
+ 'alias': 'str',
'compartment_id': 'str',
'endpoint_id': 'str',
'documents': 'list[TextDocument]'
}
self.attribute_map = {
+ 'alias': 'alias',
'compartment_id': 'compartmentId',
'endpoint_id': 'endpointId',
'documents': 'documents'
}
+ self._alias = None
self._compartment_id = None
self._endpoint_id = None
self._documents = None
+ @property
+ def alias(self):
+ """
+ Gets the alias of this BatchDetectLanguageTextClassificationDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :return: The alias of this BatchDetectLanguageTextClassificationDetails.
+ :rtype: str
+ """
+ return self._alias
+
+ @alias.setter
+ def alias(self, alias):
+ """
+ Sets the alias of this BatchDetectLanguageTextClassificationDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :param alias: The alias of this BatchDetectLanguageTextClassificationDetails.
+ :type: str
+ """
+ self._alias = alias
+
@property
def compartment_id(self):
"""
diff --git a/src/oci/ai_language/models/batch_language_translation_details.py b/src/oci/ai_language/models/batch_language_translation_details.py
index 2c367d27aa..d4d7fa8048 100644
--- a/src/oci/ai_language/models/batch_language_translation_details.py
+++ b/src/oci/ai_language/models/batch_language_translation_details.py
@@ -20,6 +20,18 @@ def __init__(self, **kwargs):
Initializes a new BatchLanguageTranslationDetails object with values from keyword arguments.
The following keyword arguments are supported (corresponding to the getters/setters of this class):
+ :param alias:
+ The value to assign to the alias property of this BatchLanguageTranslationDetails.
+ :type alias: str
+
+ :param endpoint_id:
+ The value to assign to the endpoint_id property of this BatchLanguageTranslationDetails.
+ :type endpoint_id: str
+
+ :param no_translate:
+ The value to assign to the no_translate property of this BatchLanguageTranslationDetails.
+ :type no_translate: list[str]
+
:param compartment_id:
The value to assign to the compartment_id property of this BatchLanguageTranslationDetails.
:type compartment_id: str
@@ -34,21 +46,102 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
+ 'alias': 'str',
+ 'endpoint_id': 'str',
+ 'no_translate': 'list[str]',
'compartment_id': 'str',
'target_language_code': 'str',
'documents': 'list[TextDocument]'
}
self.attribute_map = {
+ 'alias': 'alias',
+ 'endpoint_id': 'endpointId',
+ 'no_translate': 'noTranslate',
'compartment_id': 'compartmentId',
'target_language_code': 'targetLanguageCode',
'documents': 'documents'
}
+ self._alias = None
+ self._endpoint_id = None
+ self._no_translate = None
self._compartment_id = None
self._target_language_code = None
self._documents = None
+ @property
+ def alias(self):
+ """
+ Gets the alias of this BatchLanguageTranslationDetails.
+ Unique name to identify an endpoint to be used for inferencing
+
+
+ :return: The alias of this BatchLanguageTranslationDetails.
+ :rtype: str
+ """
+ return self._alias
+
+ @alias.setter
+ def alias(self, alias):
+ """
+ Sets the alias of this BatchLanguageTranslationDetails.
+ Unique name to identify an endpoint to be used for inferencing
+
+
+ :param alias: The alias of this BatchLanguageTranslationDetails.
+ :type: str
+ """
+ self._alias = alias
+
+ @property
+ def endpoint_id(self):
+ """
+ Gets the endpoint_id of this BatchLanguageTranslationDetails.
+ The endpoint that has to be used for inferencing.
+
+
+ :return: The endpoint_id of this BatchLanguageTranslationDetails.
+ :rtype: str
+ """
+ return self._endpoint_id
+
+ @endpoint_id.setter
+ def endpoint_id(self, endpoint_id):
+ """
+ Sets the endpoint_id of this BatchLanguageTranslationDetails.
+ The endpoint that has to be used for inferencing.
+
+
+ :param endpoint_id: The endpoint_id of this BatchLanguageTranslationDetails.
+ :type: str
+ """
+ self._endpoint_id = endpoint_id
+
+ @property
+ def no_translate(self):
+ """
+ Gets the no_translate of this BatchLanguageTranslationDetails.
+ List of words not to be translated
+
+
+ :return: The no_translate of this BatchLanguageTranslationDetails.
+ :rtype: list[str]
+ """
+ return self._no_translate
+
+ @no_translate.setter
+ def no_translate(self, no_translate):
+ """
+ Sets the no_translate of this BatchLanguageTranslationDetails.
+ List of words not to be translated
+
+
+ :param no_translate: The no_translate of this BatchLanguageTranslationDetails.
+ :type: list[str]
+ """
+ self._no_translate = no_translate
+
@property
def compartment_id(self):
"""
diff --git a/src/oci/ai_language/models/create_endpoint_details.py b/src/oci/ai_language/models/create_endpoint_details.py
index 39dd9eaa06..1b19ca7f50 100644
--- a/src/oci/ai_language/models/create_endpoint_details.py
+++ b/src/oci/ai_language/models/create_endpoint_details.py
@@ -15,6 +15,14 @@ class CreateEndpointDetails(object):
The information needed to create a new endpoint and expose to end users.
"""
+ #: A constant which can be used with the compute_type property of a CreateEndpointDetails.
+ #: This constant has a value of "CPU"
+ COMPUTE_TYPE_CPU = "CPU"
+
+ #: A constant which can be used with the compute_type property of a CreateEndpointDetails.
+ #: This constant has a value of "GPU"
+ COMPUTE_TYPE_GPU = "GPU"
+
def __init__(self, **kwargs):
"""
Initializes a new CreateEndpointDetails object with values from keyword arguments.
@@ -24,6 +32,15 @@ def __init__(self, **kwargs):
The value to assign to the display_name property of this CreateEndpointDetails.
:type display_name: str
+ :param compute_type:
+ The value to assign to the compute_type property of this CreateEndpointDetails.
+ Allowed values for this property are: "CPU", "GPU"
+ :type compute_type: str
+
+ :param alias:
+ The value to assign to the alias property of this CreateEndpointDetails.
+ :type alias: str
+
:param description:
The value to assign to the description property of this CreateEndpointDetails.
:type description: str
@@ -51,6 +68,8 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
'display_name': 'str',
+ 'compute_type': 'str',
+ 'alias': 'str',
'description': 'str',
'compartment_id': 'str',
'model_id': 'str',
@@ -61,6 +80,8 @@ def __init__(self, **kwargs):
self.attribute_map = {
'display_name': 'displayName',
+ 'compute_type': 'computeType',
+ 'alias': 'alias',
'description': 'description',
'compartment_id': 'compartmentId',
'model_id': 'modelId',
@@ -70,6 +91,8 @@ def __init__(self, **kwargs):
}
self._display_name = None
+ self._compute_type = None
+ self._alias = None
self._description = None
self._compartment_id = None
self._model_id = None
@@ -101,6 +124,61 @@ def display_name(self, display_name):
"""
self._display_name = display_name
+ @property
+ def compute_type(self):
+ """
+ Gets the compute_type of this CreateEndpointDetails.
+ Compute infra type for endpoint.
+
+ Allowed values for this property are: "CPU", "GPU"
+
+
+ :return: The compute_type of this CreateEndpointDetails.
+ :rtype: str
+ """
+ return self._compute_type
+
+ @compute_type.setter
+ def compute_type(self, compute_type):
+ """
+ Sets the compute_type of this CreateEndpointDetails.
+ Compute infra type for endpoint.
+
+
+ :param compute_type: The compute_type of this CreateEndpointDetails.
+ :type: str
+ """
+ allowed_values = ["CPU", "GPU"]
+ if not value_allowed_none_or_none_sentinel(compute_type, allowed_values):
+ raise ValueError(
+ f"Invalid value for `compute_type`, must be None or one of {allowed_values}"
+ )
+ self._compute_type = compute_type
+
+ @property
+ def alias(self):
+ """
+ Gets the alias of this CreateEndpointDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :return: The alias of this CreateEndpointDetails.
+ :rtype: str
+ """
+ return self._alias
+
+ @alias.setter
+ def alias(self, alias):
+ """
+ Sets the alias of this CreateEndpointDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :param alias: The alias of this CreateEndpointDetails.
+ :type: str
+ """
+ self._alias = alias
+
@property
def description(self):
"""
diff --git a/src/oci/ai_language/models/endpoint.py b/src/oci/ai_language/models/endpoint.py
index 3850b3e272..590ba65092 100644
--- a/src/oci/ai_language/models/endpoint.py
+++ b/src/oci/ai_language/models/endpoint.py
@@ -15,6 +15,14 @@ class Endpoint(object):
Description of the endpoint.
"""
+ #: A constant which can be used with the compute_type property of a Endpoint.
+ #: This constant has a value of "CPU"
+ COMPUTE_TYPE_CPU = "CPU"
+
+ #: A constant which can be used with the compute_type property of a Endpoint.
+ #: This constant has a value of "GPU"
+ COMPUTE_TYPE_GPU = "GPU"
+
#: A constant which can be used with the lifecycle_state property of a Endpoint.
#: This constant has a value of "DELETING"
LIFECYCLE_STATE_DELETING = "DELETING"
@@ -48,6 +56,16 @@ def __init__(self, **kwargs):
The value to assign to the id property of this Endpoint.
:type id: str
+ :param alias:
+ The value to assign to the alias property of this Endpoint.
+ :type alias: str
+
+ :param compute_type:
+ The value to assign to the compute_type property of this Endpoint.
+ Allowed values for this property are: "CPU", "GPU", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type compute_type: str
+
:param display_name:
The value to assign to the display_name property of this Endpoint.
:type display_name: str
@@ -105,6 +123,8 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
'id': 'str',
+ 'alias': 'str',
+ 'compute_type': 'str',
'display_name': 'str',
'compartment_id': 'str',
'project_id': 'str',
@@ -122,6 +142,8 @@ def __init__(self, **kwargs):
self.attribute_map = {
'id': 'id',
+ 'alias': 'alias',
+ 'compute_type': 'computeType',
'display_name': 'displayName',
'compartment_id': 'compartmentId',
'project_id': 'projectId',
@@ -138,6 +160,8 @@ def __init__(self, **kwargs):
}
self._id = None
+ self._alias = None
+ self._compute_type = None
self._display_name = None
self._compartment_id = None
self._project_id = None
@@ -176,6 +200,60 @@ def id(self, id):
"""
self._id = id
+ @property
+ def alias(self):
+ """
+ Gets the alias of this Endpoint.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :return: The alias of this Endpoint.
+ :rtype: str
+ """
+ return self._alias
+
+ @alias.setter
+ def alias(self, alias):
+ """
+ Sets the alias of this Endpoint.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :param alias: The alias of this Endpoint.
+ :type: str
+ """
+ self._alias = alias
+
+ @property
+ def compute_type(self):
+ """
+ Gets the compute_type of this Endpoint.
+ Compute infra type for endpoint.
+
+ Allowed values for this property are: "CPU", "GPU", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The compute_type of this Endpoint.
+ :rtype: str
+ """
+ return self._compute_type
+
+ @compute_type.setter
+ def compute_type(self, compute_type):
+ """
+ Sets the compute_type of this Endpoint.
+ Compute infra type for endpoint.
+
+
+ :param compute_type: The compute_type of this Endpoint.
+ :type: str
+ """
+ allowed_values = ["CPU", "GPU"]
+ if not value_allowed_none_or_none_sentinel(compute_type, allowed_values):
+ compute_type = 'UNKNOWN_ENUM_VALUE'
+ self._compute_type = compute_type
+
@property
def display_name(self):
"""
diff --git a/src/oci/ai_language/models/endpoint_summary.py b/src/oci/ai_language/models/endpoint_summary.py
index f0684a95f5..afb2a78553 100644
--- a/src/oci/ai_language/models/endpoint_summary.py
+++ b/src/oci/ai_language/models/endpoint_summary.py
@@ -15,6 +15,14 @@ class EndpointSummary(object):
Summary of the language endpoint.
"""
+ #: A constant which can be used with the compute_type property of a EndpointSummary.
+ #: This constant has a value of "CPU"
+ COMPUTE_TYPE_CPU = "CPU"
+
+ #: A constant which can be used with the compute_type property of a EndpointSummary.
+ #: This constant has a value of "GPU"
+ COMPUTE_TYPE_GPU = "GPU"
+
def __init__(self, **kwargs):
"""
Initializes a new EndpointSummary object with values from keyword arguments.
@@ -24,6 +32,16 @@ def __init__(self, **kwargs):
The value to assign to the id property of this EndpointSummary.
:type id: str
+ :param alias:
+ The value to assign to the alias property of this EndpointSummary.
+ :type alias: str
+
+ :param compute_type:
+ The value to assign to the compute_type property of this EndpointSummary.
+ Allowed values for this property are: "CPU", "GPU", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type compute_type: str
+
:param display_name:
The value to assign to the display_name property of this EndpointSummary.
:type display_name: str
@@ -75,6 +93,8 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
'id': 'str',
+ 'alias': 'str',
+ 'compute_type': 'str',
'display_name': 'str',
'compartment_id': 'str',
'project_id': 'str',
@@ -91,6 +111,8 @@ def __init__(self, **kwargs):
self.attribute_map = {
'id': 'id',
+ 'alias': 'alias',
+ 'compute_type': 'computeType',
'display_name': 'displayName',
'compartment_id': 'compartmentId',
'project_id': 'projectId',
@@ -106,6 +128,8 @@ def __init__(self, **kwargs):
}
self._id = None
+ self._alias = None
+ self._compute_type = None
self._display_name = None
self._compartment_id = None
self._project_id = None
@@ -143,6 +167,60 @@ def id(self, id):
"""
self._id = id
+ @property
+ def alias(self):
+ """
+ Gets the alias of this EndpointSummary.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :return: The alias of this EndpointSummary.
+ :rtype: str
+ """
+ return self._alias
+
+ @alias.setter
+ def alias(self, alias):
+ """
+ Sets the alias of this EndpointSummary.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :param alias: The alias of this EndpointSummary.
+ :type: str
+ """
+ self._alias = alias
+
+ @property
+ def compute_type(self):
+ """
+ Gets the compute_type of this EndpointSummary.
+ Compute infra type for endpoint.
+
+ Allowed values for this property are: "CPU", "GPU", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The compute_type of this EndpointSummary.
+ :rtype: str
+ """
+ return self._compute_type
+
+ @compute_type.setter
+ def compute_type(self, compute_type):
+ """
+ Sets the compute_type of this EndpointSummary.
+ Compute infra type for endpoint.
+
+
+ :param compute_type: The compute_type of this EndpointSummary.
+ :type: str
+ """
+ allowed_values = ["CPU", "GPU"]
+ if not value_allowed_none_or_none_sentinel(compute_type, allowed_values):
+ compute_type = 'UNKNOWN_ENUM_VALUE'
+ self._compute_type = compute_type
+
@property
def display_name(self):
"""
diff --git a/src/oci/ai_language/models/health_nlu_model_details.py b/src/oci/ai_language/models/health_nlu_model_details.py
new file mode 100644
index 0000000000..6cfc2f68ca
--- /dev/null
+++ b/src/oci/ai_language/models/health_nlu_model_details.py
@@ -0,0 +1,91 @@
+# 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: 20221001
+
+from .model_details import ModelDetails
+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 HealthNluModelDetails(ModelDetails):
+ """
+ Possible health NLU model information.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new HealthNluModelDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.ai_language.models.HealthNluModelDetails.model_type` attribute
+ of this class is ``HEALTH_NLU`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param language_code:
+ The value to assign to the language_code property of this HealthNluModelDetails.
+ :type language_code: str
+
+ :param model_type:
+ The value to assign to the model_type property of this HealthNluModelDetails.
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
+ :type model_type: str
+
+ :param version:
+ The value to assign to the version property of this HealthNluModelDetails.
+ :type version: str
+
+ """
+ self.swagger_types = {
+ 'language_code': 'str',
+ 'model_type': 'str',
+ 'version': 'str'
+ }
+
+ self.attribute_map = {
+ 'language_code': 'languageCode',
+ 'model_type': 'modelType',
+ 'version': 'version'
+ }
+
+ self._language_code = None
+ self._model_type = None
+ self._version = None
+ self._model_type = 'HEALTH_NLU'
+
+ @property
+ def version(self):
+ """
+ Gets the version of this HealthNluModelDetails.
+ Optional pre trained model version. If nothing specified latest pre trained model will be used.
+ Supported versions can be found at /modelTypes/{modelType}
+
+
+ :return: The version of this HealthNluModelDetails.
+ :rtype: str
+ """
+ return self._version
+
+ @version.setter
+ def version(self, version):
+ """
+ Sets the version of this HealthNluModelDetails.
+ Optional pre trained model version. If nothing specified latest pre trained model will be used.
+ Supported versions can be found at /modelTypes/{modelType}
+
+
+ :param version: The version of this HealthNluModelDetails.
+ :type: str
+ """
+ self._version = version
+
+ 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/ai_language/models/hierarchical_entity.py b/src/oci/ai_language/models/hierarchical_entity.py
index a004a4c389..a5646d9d1d 100644
--- a/src/oci/ai_language/models/hierarchical_entity.py
+++ b/src/oci/ai_language/models/hierarchical_entity.py
@@ -20,6 +20,10 @@ def __init__(self, **kwargs):
Initializes a new HierarchicalEntity object with values from keyword arguments.
The following keyword arguments are supported (corresponding to the getters/setters of this class):
+ :param meta_info:
+ The value to assign to the meta_info property of this HierarchicalEntity.
+ :type meta_info: oci.ai_language.models.MetaInfo
+
:param offset:
The value to assign to the offset property of this HierarchicalEntity.
:type offset: int
@@ -46,6 +50,7 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
+ 'meta_info': 'MetaInfo',
'offset': 'int',
'length': 'int',
'text': 'str',
@@ -55,6 +60,7 @@ def __init__(self, **kwargs):
}
self.attribute_map = {
+ 'meta_info': 'metaInfo',
'offset': 'offset',
'length': 'length',
'text': 'text',
@@ -63,6 +69,7 @@ def __init__(self, **kwargs):
'score': 'score'
}
+ self._meta_info = None
self._offset = None
self._length = None
self._text = None
@@ -70,6 +77,26 @@ def __init__(self, **kwargs):
self._sub_type = None
self._score = None
+ @property
+ def meta_info(self):
+ """
+ Gets the meta_info of this HierarchicalEntity.
+
+ :return: The meta_info of this HierarchicalEntity.
+ :rtype: oci.ai_language.models.MetaInfo
+ """
+ return self._meta_info
+
+ @meta_info.setter
+ def meta_info(self, meta_info):
+ """
+ Sets the meta_info of this HierarchicalEntity.
+
+ :param meta_info: The meta_info of this HierarchicalEntity.
+ :type: oci.ai_language.models.MetaInfo
+ """
+ self._meta_info = meta_info
+
@property
def offset(self):
"""
diff --git a/src/oci/ai_language/models/meta_info.py b/src/oci/ai_language/models/meta_info.py
new file mode 100644
index 0000000000..783647eb94
--- /dev/null
+++ b/src/oci/ai_language/models/meta_info.py
@@ -0,0 +1,196 @@
+# 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: 20221001
+
+
+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 MetaInfo(object):
+ """
+ MetaInfo of entity detected.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new MetaInfo object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param offset:
+ The value to assign to the offset property of this MetaInfo.
+ :type offset: int
+
+ :param length:
+ The value to assign to the length property of this MetaInfo.
+ :type length: int
+
+ :param text:
+ The value to assign to the text property of this MetaInfo.
+ :type text: str
+
+ :param sub_type:
+ The value to assign to the sub_type property of this MetaInfo.
+ :type sub_type: str
+
+ :param score:
+ The value to assign to the score property of this MetaInfo.
+ :type score: float
+
+ """
+ self.swagger_types = {
+ 'offset': 'int',
+ 'length': 'int',
+ 'text': 'str',
+ 'sub_type': 'str',
+ 'score': 'float'
+ }
+
+ self.attribute_map = {
+ 'offset': 'offset',
+ 'length': 'length',
+ 'text': 'text',
+ 'sub_type': 'subType',
+ 'score': 'score'
+ }
+
+ self._offset = None
+ self._length = None
+ self._text = None
+ self._sub_type = None
+ self._score = None
+
+ @property
+ def offset(self):
+ """
+ Gets the offset of this MetaInfo.
+ The number of Unicode code points preceding this entity in the submitted text.
+
+
+ :return: The offset of this MetaInfo.
+ :rtype: int
+ """
+ return self._offset
+
+ @offset.setter
+ def offset(self, offset):
+ """
+ Sets the offset of this MetaInfo.
+ The number of Unicode code points preceding this entity in the submitted text.
+
+
+ :param offset: The offset of this MetaInfo.
+ :type: int
+ """
+ self._offset = offset
+
+ @property
+ def length(self):
+ """
+ Gets the length of this MetaInfo.
+ Length of entity text.
+
+
+ :return: The length of this MetaInfo.
+ :rtype: int
+ """
+ return self._length
+
+ @length.setter
+ def length(self, length):
+ """
+ Sets the length of this MetaInfo.
+ Length of entity text.
+
+
+ :param length: The length of this MetaInfo.
+ :type: int
+ """
+ self._length = length
+
+ @property
+ def text(self):
+ """
+ Gets the text of this MetaInfo.
+ Entity text like name of person, location, and so on.
+
+
+ :return: The text of this MetaInfo.
+ :rtype: str
+ """
+ return self._text
+
+ @text.setter
+ def text(self, text):
+ """
+ Sets the text of this MetaInfo.
+ Entity text like name of person, location, and so on.
+
+
+ :param text: The text of this MetaInfo.
+ :type: str
+ """
+ self._text = text
+
+ @property
+ def sub_type(self):
+ """
+ Gets the sub_type of this MetaInfo.
+ Sub-type of entity text like GPE for LOCATION type.
+
+
+ :return: The sub_type of this MetaInfo.
+ :rtype: str
+ """
+ return self._sub_type
+
+ @sub_type.setter
+ def sub_type(self, sub_type):
+ """
+ Sets the sub_type of this MetaInfo.
+ Sub-type of entity text like GPE for LOCATION type.
+
+
+ :param sub_type: The sub_type of this MetaInfo.
+ :type: str
+ """
+ self._sub_type = sub_type
+
+ @property
+ def score(self):
+ """
+ Gets the score of this MetaInfo.
+ Score or confidence for detected entity.
+
+
+ :return: The score of this MetaInfo.
+ :rtype: float
+ """
+ return self._score
+
+ @score.setter
+ def score(self, score):
+ """
+ Sets the score of this MetaInfo.
+ Score or confidence for detected entity.
+
+
+ :param score: The score of this MetaInfo.
+ :type: float
+ """
+ self._score = score
+
+ 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/ai_language/models/model_details.py b/src/oci/ai_language/models/model_details.py
index a0a6dda951..19ddc11cf0 100644
--- a/src/oci/ai_language/models/model_details.py
+++ b/src/oci/ai_language/models/model_details.py
@@ -47,10 +47,6 @@ class ModelDetails(object):
#: This constant has a value of "PRE_TRAINED_PII"
MODEL_TYPE_PRE_TRAINED_PII = "PRE_TRAINED_PII"
- #: A constant which can be used with the model_type property of a ModelDetails.
- #: This constant has a value of "PRE_TRAINED_TRANSLATION"
- MODEL_TYPE_PRE_TRAINED_TRANSLATION = "PRE_TRAINED_TRANSLATION"
-
#: A constant which can be used with the model_type property of a ModelDetails.
#: This constant has a value of "PRE_TRAINED_HEALTH_NLU"
MODEL_TYPE_PRE_TRAINED_HEALTH_NLU = "PRE_TRAINED_HEALTH_NLU"
@@ -67,22 +63,32 @@ class ModelDetails(object):
#: This constant has a value of "PII"
MODEL_TYPE_PII = "PII"
+ #: A constant which can be used with the model_type property of a ModelDetails.
+ #: This constant has a value of "PRE_TRAINED_TRANSLATION"
+ MODEL_TYPE_PRE_TRAINED_TRANSLATION = "PRE_TRAINED_TRANSLATION"
+
+ #: A constant which can be used with the model_type property of a ModelDetails.
+ #: This constant has a value of "HEALTH_NLU"
+ MODEL_TYPE_HEALTH_NLU = "HEALTH_NLU"
+
def __init__(self, **kwargs):
"""
Initializes a new ModelDetails 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.ai_language.models.PreTrainedKeyPhraseExtractionModelDetails`
+ * :class:`~oci.ai_language.models.PreTrainedTranslationModelDetails`
* :class:`~oci.ai_language.models.PreTrainedHealthNluModelDetails`
* :class:`~oci.ai_language.models.PreTrainedUniversalModel`
- * :class:`~oci.ai_language.models.NamedEntityRecognitionModelDetails`
- * :class:`~oci.ai_language.models.PiiModelDetails`
* :class:`~oci.ai_language.models.PreTrainedLanguageDetectionModelDetails`
- * :class:`~oci.ai_language.models.PreTrainedNamedEntityRecognitionModelDetails`
* :class:`~oci.ai_language.models.PreTrainedSentimentAnalysisModelDetails`
- * :class:`~oci.ai_language.models.PreTrainedTextClassificationModelDetails`
* :class:`~oci.ai_language.models.TextClassificationModelDetails`
+ * :class:`~oci.ai_language.models.HealthNluModelDetails`
* :class:`~oci.ai_language.models.PreTrainedSummarization`
+ * :class:`~oci.ai_language.models.NamedEntityRecognitionModelDetails`
+ * :class:`~oci.ai_language.models.PiiModelDetails`
+ * :class:`~oci.ai_language.models.PreTrainedNamedEntityRecognitionModelDetails`
+ * :class:`~oci.ai_language.models.PreTrainedTextClassificationModelDetails`
* :class:`~oci.ai_language.models.PreTrainedPiiModelDetails`
The following keyword arguments are supported (corresponding to the getters/setters of this class):
@@ -93,7 +99,7 @@ def __init__(self, **kwargs):
:param model_type:
The value to assign to the model_type property of this ModelDetails.
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type model_type: str
@@ -122,36 +128,42 @@ def get_subtype(object_dictionary):
if type == 'PRE_TRAINED_KEYPHRASE_EXTRACTION':
return 'PreTrainedKeyPhraseExtractionModelDetails'
+ if type == 'PRE_TRAINED_TRANSLATION':
+ return 'PreTrainedTranslationModelDetails'
+
if type == 'PRE_TRAINED_HEALTH_NLU':
return 'PreTrainedHealthNluModelDetails'
if type == 'PRE_TRAINED_UNIVERSAL':
return 'PreTrainedUniversalModel'
- if type == 'NAMED_ENTITY_RECOGNITION':
- return 'NamedEntityRecognitionModelDetails'
-
- if type == 'PII':
- return 'PiiModelDetails'
-
if type == 'PRE_TRAINED_LANGUAGE_DETECTION':
return 'PreTrainedLanguageDetectionModelDetails'
- if type == 'PRE_TRAINED_NAMED_ENTITY_RECOGNITION':
- return 'PreTrainedNamedEntityRecognitionModelDetails'
-
if type == 'PRE_TRAINED_SENTIMENT_ANALYSIS':
return 'PreTrainedSentimentAnalysisModelDetails'
- if type == 'PRE_TRAINED_TEXT_CLASSIFICATION':
- return 'PreTrainedTextClassificationModelDetails'
-
if type == 'TEXT_CLASSIFICATION':
return 'TextClassificationModelDetails'
+ if type == 'HEALTH_NLU':
+ return 'HealthNluModelDetails'
+
if type == 'PRE_TRAINED_SUMMARIZATION':
return 'PreTrainedSummarization'
+ if type == 'NAMED_ENTITY_RECOGNITION':
+ return 'NamedEntityRecognitionModelDetails'
+
+ if type == 'PII':
+ return 'PiiModelDetails'
+
+ if type == 'PRE_TRAINED_NAMED_ENTITY_RECOGNITION':
+ return 'PreTrainedNamedEntityRecognitionModelDetails'
+
+ if type == 'PRE_TRAINED_TEXT_CLASSIFICATION':
+ return 'PreTrainedTextClassificationModelDetails'
+
if type == 'PRE_TRAINED_PII':
return 'PreTrainedPiiModelDetails'
else:
@@ -187,7 +199,7 @@ def model_type(self):
**[Required]** Gets the model_type of this ModelDetails.
Model type
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -206,7 +218,7 @@ def model_type(self, model_type):
:param model_type: The model_type of this ModelDetails.
:type: str
"""
- allowed_values = ["NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII"]
+ allowed_values = ["NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"]
if not value_allowed_none_or_none_sentinel(model_type, allowed_values):
model_type = 'UNKNOWN_ENUM_VALUE'
self._model_type = model_type
diff --git a/src/oci/ai_language/models/named_entity_recognition_model_details.py b/src/oci/ai_language/models/named_entity_recognition_model_details.py
index 4df5199daf..38004ad658 100644
--- a/src/oci/ai_language/models/named_entity_recognition_model_details.py
+++ b/src/oci/ai_language/models/named_entity_recognition_model_details.py
@@ -27,7 +27,7 @@ def __init__(self, **kwargs):
:param model_type:
The value to assign to the model_type property of this NamedEntityRecognitionModelDetails.
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII"
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
:type model_type: str
:param version:
diff --git a/src/oci/ai_language/models/pii_entity_mask.py b/src/oci/ai_language/models/pii_entity_mask.py
index fb8fd467aa..d46ddfffbe 100644
--- a/src/oci/ai_language/models/pii_entity_mask.py
+++ b/src/oci/ai_language/models/pii_entity_mask.py
@@ -26,6 +26,14 @@ def __init__(self, **kwargs):
Allowed values for this property are: "REPLACE", "MASK", "REMOVE"
:type mode: str
+ :param exclude:
+ The value to assign to the exclude property of this PiiEntityMask.
+ :type exclude: list[str]
+
+ :param should_detect:
+ The value to assign to the should_detect property of this PiiEntityMask.
+ :type should_detect: bool
+
:param masking_character:
The value to assign to the masking_character property of this PiiEntityMask.
:type masking_character: str
@@ -41,6 +49,8 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
'mode': 'str',
+ 'exclude': 'list[str]',
+ 'should_detect': 'bool',
'masking_character': 'str',
'leave_characters_unmasked': 'int',
'is_unmasked_from_end': 'bool'
@@ -48,12 +58,16 @@ def __init__(self, **kwargs):
self.attribute_map = {
'mode': 'mode',
+ 'exclude': 'exclude',
+ 'should_detect': 'shouldDetect',
'masking_character': 'maskingCharacter',
'leave_characters_unmasked': 'leaveCharactersUnmasked',
'is_unmasked_from_end': 'isUnmaskedFromEnd'
}
self._mode = None
+ self._exclude = None
+ self._should_detect = None
self._masking_character = None
self._leave_characters_unmasked = None
self._is_unmasked_from_end = None
diff --git a/src/oci/ai_language/models/pii_entity_masking.py b/src/oci/ai_language/models/pii_entity_masking.py
index 8c75fa3706..95b6602351 100644
--- a/src/oci/ai_language/models/pii_entity_masking.py
+++ b/src/oci/ai_language/models/pii_entity_masking.py
@@ -43,16 +43,30 @@ def __init__(self, **kwargs):
Allowed values for this property are: "REPLACE", "MASK", "REMOVE"
:type mode: str
+ :param exclude:
+ The value to assign to the exclude property of this PiiEntityMasking.
+ :type exclude: list[str]
+
+ :param should_detect:
+ The value to assign to the should_detect property of this PiiEntityMasking.
+ :type should_detect: bool
+
"""
self.swagger_types = {
- 'mode': 'str'
+ 'mode': 'str',
+ 'exclude': 'list[str]',
+ 'should_detect': 'bool'
}
self.attribute_map = {
- 'mode': 'mode'
+ 'mode': 'mode',
+ 'exclude': 'exclude',
+ 'should_detect': 'shouldDetect'
}
self._mode = None
+ self._exclude = None
+ self._should_detect = None
@staticmethod
def get_subtype(object_dictionary):
@@ -104,6 +118,54 @@ def mode(self, mode):
)
self._mode = mode
+ @property
+ def exclude(self):
+ """
+ Gets the exclude of this PiiEntityMasking.
+ List of offsets/entities to be removed from anonymization.
+
+
+ :return: The exclude of this PiiEntityMasking.
+ :rtype: list[str]
+ """
+ return self._exclude
+
+ @exclude.setter
+ def exclude(self, exclude):
+ """
+ Sets the exclude of this PiiEntityMasking.
+ List of offsets/entities to be removed from anonymization.
+
+
+ :param exclude: The exclude of this PiiEntityMasking.
+ :type: list[str]
+ """
+ self._exclude = exclude
+
+ @property
+ def should_detect(self):
+ """
+ Gets the should_detect of this PiiEntityMasking.
+ To include excluded entities from masking in detected entities or not.
+
+
+ :return: The should_detect of this PiiEntityMasking.
+ :rtype: bool
+ """
+ return self._should_detect
+
+ @should_detect.setter
+ def should_detect(self, should_detect):
+ """
+ Sets the should_detect of this PiiEntityMasking.
+ To include excluded entities from masking in detected entities or not.
+
+
+ :param should_detect: The should_detect of this PiiEntityMasking.
+ :type: bool
+ """
+ self._should_detect = should_detect
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/ai_language/models/pii_entity_remove.py b/src/oci/ai_language/models/pii_entity_remove.py
index bd57a4c91e..9a566c5fa1 100644
--- a/src/oci/ai_language/models/pii_entity_remove.py
+++ b/src/oci/ai_language/models/pii_entity_remove.py
@@ -26,16 +26,30 @@ def __init__(self, **kwargs):
Allowed values for this property are: "REPLACE", "MASK", "REMOVE"
:type mode: str
+ :param exclude:
+ The value to assign to the exclude property of this PiiEntityRemove.
+ :type exclude: list[str]
+
+ :param should_detect:
+ The value to assign to the should_detect property of this PiiEntityRemove.
+ :type should_detect: bool
+
"""
self.swagger_types = {
- 'mode': 'str'
+ 'mode': 'str',
+ 'exclude': 'list[str]',
+ 'should_detect': 'bool'
}
self.attribute_map = {
- 'mode': 'mode'
+ 'mode': 'mode',
+ 'exclude': 'exclude',
+ 'should_detect': 'shouldDetect'
}
self._mode = None
+ self._exclude = None
+ self._should_detect = None
self._mode = 'REMOVE'
def __repr__(self):
diff --git a/src/oci/ai_language/models/pii_entity_replace.py b/src/oci/ai_language/models/pii_entity_replace.py
index fa335f3d46..0e998e0a40 100644
--- a/src/oci/ai_language/models/pii_entity_replace.py
+++ b/src/oci/ai_language/models/pii_entity_replace.py
@@ -26,6 +26,14 @@ def __init__(self, **kwargs):
Allowed values for this property are: "REPLACE", "MASK", "REMOVE"
:type mode: str
+ :param exclude:
+ The value to assign to the exclude property of this PiiEntityReplace.
+ :type exclude: list[str]
+
+ :param should_detect:
+ The value to assign to the should_detect property of this PiiEntityReplace.
+ :type should_detect: bool
+
:param replace_with:
The value to assign to the replace_with property of this PiiEntityReplace.
:type replace_with: str
@@ -33,15 +41,21 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
'mode': 'str',
+ 'exclude': 'list[str]',
+ 'should_detect': 'bool',
'replace_with': 'str'
}
self.attribute_map = {
'mode': 'mode',
+ 'exclude': 'exclude',
+ 'should_detect': 'shouldDetect',
'replace_with': 'replaceWith'
}
self._mode = None
+ self._exclude = None
+ self._should_detect = None
self._replace_with = None
self._mode = 'REPLACE'
diff --git a/src/oci/ai_language/models/pii_model_details.py b/src/oci/ai_language/models/pii_model_details.py
index 25aa6e78c8..9491acec16 100644
--- a/src/oci/ai_language/models/pii_model_details.py
+++ b/src/oci/ai_language/models/pii_model_details.py
@@ -27,7 +27,7 @@ def __init__(self, **kwargs):
:param model_type:
The value to assign to the model_type property of this PiiModelDetails.
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII"
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
:type model_type: str
:param version:
diff --git a/src/oci/ai_language/models/pre_trained_health_nlu_model_details.py b/src/oci/ai_language/models/pre_trained_health_nlu_model_details.py
index 73a98ab3ac..010eb2b925 100644
--- a/src/oci/ai_language/models/pre_trained_health_nlu_model_details.py
+++ b/src/oci/ai_language/models/pre_trained_health_nlu_model_details.py
@@ -27,7 +27,7 @@ def __init__(self, **kwargs):
:param model_type:
The value to assign to the model_type property of this PreTrainedHealthNluModelDetails.
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII"
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
:type model_type: str
:param version:
diff --git a/src/oci/ai_language/models/pre_trained_key_phrase_extraction_model_details.py b/src/oci/ai_language/models/pre_trained_key_phrase_extraction_model_details.py
index bfb75186ce..8dbc9a1e59 100644
--- a/src/oci/ai_language/models/pre_trained_key_phrase_extraction_model_details.py
+++ b/src/oci/ai_language/models/pre_trained_key_phrase_extraction_model_details.py
@@ -27,7 +27,7 @@ def __init__(self, **kwargs):
:param model_type:
The value to assign to the model_type property of this PreTrainedKeyPhraseExtractionModelDetails.
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII"
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
:type model_type: str
:param version:
diff --git a/src/oci/ai_language/models/pre_trained_language_detection_model_details.py b/src/oci/ai_language/models/pre_trained_language_detection_model_details.py
index 856f7d9014..ae8270070d 100644
--- a/src/oci/ai_language/models/pre_trained_language_detection_model_details.py
+++ b/src/oci/ai_language/models/pre_trained_language_detection_model_details.py
@@ -27,7 +27,7 @@ def __init__(self, **kwargs):
:param model_type:
The value to assign to the model_type property of this PreTrainedLanguageDetectionModelDetails.
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII"
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
:type model_type: str
:param version:
diff --git a/src/oci/ai_language/models/pre_trained_named_entity_recognition_model_details.py b/src/oci/ai_language/models/pre_trained_named_entity_recognition_model_details.py
index 943ce645fb..d4b5ef0fa4 100644
--- a/src/oci/ai_language/models/pre_trained_named_entity_recognition_model_details.py
+++ b/src/oci/ai_language/models/pre_trained_named_entity_recognition_model_details.py
@@ -27,7 +27,7 @@ def __init__(self, **kwargs):
:param model_type:
The value to assign to the model_type property of this PreTrainedNamedEntityRecognitionModelDetails.
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII"
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
:type model_type: str
:param version:
diff --git a/src/oci/ai_language/models/pre_trained_pii_model_details.py b/src/oci/ai_language/models/pre_trained_pii_model_details.py
index ff38f85890..447bc9f6af 100644
--- a/src/oci/ai_language/models/pre_trained_pii_model_details.py
+++ b/src/oci/ai_language/models/pre_trained_pii_model_details.py
@@ -27,7 +27,7 @@ def __init__(self, **kwargs):
:param model_type:
The value to assign to the model_type property of this PreTrainedPiiModelDetails.
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII"
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
:type model_type: str
:param version:
diff --git a/src/oci/ai_language/models/pre_trained_sentiment_analysis_model_details.py b/src/oci/ai_language/models/pre_trained_sentiment_analysis_model_details.py
index 03a95ed01b..43a3ab2def 100644
--- a/src/oci/ai_language/models/pre_trained_sentiment_analysis_model_details.py
+++ b/src/oci/ai_language/models/pre_trained_sentiment_analysis_model_details.py
@@ -27,7 +27,7 @@ def __init__(self, **kwargs):
:param model_type:
The value to assign to the model_type property of this PreTrainedSentimentAnalysisModelDetails.
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII"
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
:type model_type: str
:param version:
diff --git a/src/oci/ai_language/models/pre_trained_summarization.py b/src/oci/ai_language/models/pre_trained_summarization.py
index ee31f289a8..8878bc4609 100644
--- a/src/oci/ai_language/models/pre_trained_summarization.py
+++ b/src/oci/ai_language/models/pre_trained_summarization.py
@@ -27,7 +27,7 @@ def __init__(self, **kwargs):
:param model_type:
The value to assign to the model_type property of this PreTrainedSummarization.
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII"
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
:type model_type: str
:param version:
diff --git a/src/oci/ai_language/models/pre_trained_text_classification_model_details.py b/src/oci/ai_language/models/pre_trained_text_classification_model_details.py
index eed40020fe..8bcec2a49e 100644
--- a/src/oci/ai_language/models/pre_trained_text_classification_model_details.py
+++ b/src/oci/ai_language/models/pre_trained_text_classification_model_details.py
@@ -27,7 +27,7 @@ def __init__(self, **kwargs):
:param model_type:
The value to assign to the model_type property of this PreTrainedTextClassificationModelDetails.
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII"
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
:type model_type: str
:param version:
diff --git a/src/oci/ai_language/models/pre_trained_translation_model_details.py b/src/oci/ai_language/models/pre_trained_translation_model_details.py
new file mode 100644
index 0000000000..41538ae53d
--- /dev/null
+++ b/src/oci/ai_language/models/pre_trained_translation_model_details.py
@@ -0,0 +1,91 @@
+# 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: 20221001
+
+from .model_details import ModelDetails
+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 PreTrainedTranslationModelDetails(ModelDetails):
+ """
+ Possible pre trained translation model information.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PreTrainedTranslationModelDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.ai_language.models.PreTrainedTranslationModelDetails.model_type` attribute
+ of this class is ``PRE_TRAINED_TRANSLATION`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param language_code:
+ The value to assign to the language_code property of this PreTrainedTranslationModelDetails.
+ :type language_code: str
+
+ :param model_type:
+ The value to assign to the model_type property of this PreTrainedTranslationModelDetails.
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
+ :type model_type: str
+
+ :param version:
+ The value to assign to the version property of this PreTrainedTranslationModelDetails.
+ :type version: str
+
+ """
+ self.swagger_types = {
+ 'language_code': 'str',
+ 'model_type': 'str',
+ 'version': 'str'
+ }
+
+ self.attribute_map = {
+ 'language_code': 'languageCode',
+ 'model_type': 'modelType',
+ 'version': 'version'
+ }
+
+ self._language_code = None
+ self._model_type = None
+ self._version = None
+ self._model_type = 'PRE_TRAINED_TRANSLATION'
+
+ @property
+ def version(self):
+ """
+ Gets the version of this PreTrainedTranslationModelDetails.
+ Optional pre trained model version. If nothing specified latest pre trained model will be used.
+ Supported versions can be found at /modelTypes/{modelType}
+
+
+ :return: The version of this PreTrainedTranslationModelDetails.
+ :rtype: str
+ """
+ return self._version
+
+ @version.setter
+ def version(self, version):
+ """
+ Sets the version of this PreTrainedTranslationModelDetails.
+ Optional pre trained model version. If nothing specified latest pre trained model will be used.
+ Supported versions can be found at /modelTypes/{modelType}
+
+
+ :param version: The version of this PreTrainedTranslationModelDetails.
+ :type: str
+ """
+ self._version = version
+
+ 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/ai_language/models/pre_trained_universal_model.py b/src/oci/ai_language/models/pre_trained_universal_model.py
index d419ab5c51..25a200ab29 100644
--- a/src/oci/ai_language/models/pre_trained_universal_model.py
+++ b/src/oci/ai_language/models/pre_trained_universal_model.py
@@ -27,7 +27,7 @@ def __init__(self, **kwargs):
:param model_type:
The value to assign to the model_type property of this PreTrainedUniversalModel.
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII"
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
:type model_type: str
:param version:
diff --git a/src/oci/ai_language/models/text_classification_model_details.py b/src/oci/ai_language/models/text_classification_model_details.py
index 0363fb1d46..d81ef42bc7 100644
--- a/src/oci/ai_language/models/text_classification_model_details.py
+++ b/src/oci/ai_language/models/text_classification_model_details.py
@@ -27,7 +27,7 @@ def __init__(self, **kwargs):
:param model_type:
The value to assign to the model_type property of this TextClassificationModelDetails.
- Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_TRANSLATION", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII"
+ Allowed values for this property are: "NAMED_ENTITY_RECOGNITION", "TEXT_CLASSIFICATION", "PRE_TRAINED_NAMED_ENTITY_RECOGNITION", "PRE_TRAINED_TEXT_CLASSIFICATION", "PRE_TRAINED_SENTIMENT_ANALYSIS", "PRE_TRAINED_KEYPHRASE_EXTRACTION", "PRE_TRAINED_LANGUAGE_DETECTION", "PRE_TRAINED_PII", "PRE_TRAINED_HEALTH_NLU", "PRE_TRAINED_SUMMARIZATION", "PRE_TRAINED_UNIVERSAL", "PII", "PRE_TRAINED_TRANSLATION", "HEALTH_NLU"
:type model_type: str
:param classification_mode:
diff --git a/src/oci/ai_language/models/update_endpoint_details.py b/src/oci/ai_language/models/update_endpoint_details.py
index c4b2645fe3..ca3996a2fc 100644
--- a/src/oci/ai_language/models/update_endpoint_details.py
+++ b/src/oci/ai_language/models/update_endpoint_details.py
@@ -24,6 +24,10 @@ def __init__(self, **kwargs):
The value to assign to the display_name property of this UpdateEndpointDetails.
:type display_name: str
+ :param alias:
+ The value to assign to the alias property of this UpdateEndpointDetails.
+ :type alias: str
+
:param description:
The value to assign to the description property of this UpdateEndpointDetails.
:type description: str
@@ -47,6 +51,7 @@ def __init__(self, **kwargs):
"""
self.swagger_types = {
'display_name': 'str',
+ 'alias': 'str',
'description': 'str',
'model_id': 'str',
'inference_units': 'int',
@@ -56,6 +61,7 @@ def __init__(self, **kwargs):
self.attribute_map = {
'display_name': 'displayName',
+ 'alias': 'alias',
'description': 'description',
'model_id': 'modelId',
'inference_units': 'inferenceUnits',
@@ -64,6 +70,7 @@ def __init__(self, **kwargs):
}
self._display_name = None
+ self._alias = None
self._description = None
self._model_id = None
self._inference_units = None
@@ -94,6 +101,30 @@ def display_name(self, display_name):
"""
self._display_name = display_name
+ @property
+ def alias(self):
+ """
+ Gets the alias of this UpdateEndpointDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :return: The alias of this UpdateEndpointDetails.
+ :rtype: str
+ """
+ return self._alias
+
+ @alias.setter
+ def alias(self, alias):
+ """
+ Sets the alias of this UpdateEndpointDetails.
+ Unique name across user tenancy in a region to identify an endpoint to be used for inferencing.
+
+
+ :param alias: The alias of this UpdateEndpointDetails.
+ :type: str
+ """
+ self._alias = alias
+
@property
def description(self):
"""
diff --git a/src/oci/auth/signers/oke_workload_identity_resource_principal_signer.py b/src/oci/auth/signers/oke_workload_identity_resource_principal_signer.py
index 822caf81b4..6f549624ed 100644
--- a/src/oci/auth/signers/oke_workload_identity_resource_principal_signer.py
+++ b/src/oci/auth/signers/oke_workload_identity_resource_principal_signer.py
@@ -134,11 +134,18 @@ def _get_resource_principal_session_token(self):
"reason": response.reason}, indent=2)))
if not response.ok:
- raise oci.exceptions.ServiceError(
- response.status_code,
- response.reason,
- response.headers,
- "Failed to get RPST token from proxymux")
+ if response.status_code == 403:
+ raise oci.exceptions.ServiceError(
+ response.status_code,
+ response.reason,
+ response.headers,
+ "Please ensure the cluster type is enhanced")
+ else:
+ raise oci.exceptions.ServiceError(
+ response.status_code,
+ response.reason,
+ response.headers,
+ "Failed to get RPST token from proxymux")
try:
decoded_response = base64.b64decode(response.content).decode("UTF-8")
diff --git a/src/oci/core/models/__init__.py b/src/oci/core/models/__init__.py
index dd52c5cb97..e839062ee0 100644
--- a/src/oci/core/models/__init__.py
+++ b/src/oci/core/models/__init__.py
@@ -405,10 +405,13 @@
from .launch_instance_agent_config_details import LaunchInstanceAgentConfigDetails
from .launch_instance_availability_config_details import LaunchInstanceAvailabilityConfigDetails
from .launch_instance_details import LaunchInstanceDetails
+from .launch_instance_licensing_config import LaunchInstanceLicensingConfig
from .launch_instance_platform_config import LaunchInstancePlatformConfig
from .launch_instance_shape_config_details import LaunchInstanceShapeConfigDetails
+from .launch_instance_windows_licensing_config import LaunchInstanceWindowsLicensingConfig
from .launch_options import LaunchOptions
from .letter_of_authority import LetterOfAuthority
+from .licensing_config import LicensingConfig
from .list_ip_inventory_details import ListIpInventoryDetails
from .local_peering_gateway import LocalPeeringGateway
from .loop_back_drg_attachment_network_details import LoopBackDrgAttachmentNetworkDetails
@@ -532,6 +535,7 @@
from .update_instance_configuration_details import UpdateInstanceConfigurationDetails
from .update_instance_console_connection_details import UpdateInstanceConsoleConnectionDetails
from .update_instance_details import UpdateInstanceDetails
+from .update_instance_licensing_config import UpdateInstanceLicensingConfig
from .update_instance_maintenance_event_details import UpdateInstanceMaintenanceEventDetails
from .update_instance_platform_config import UpdateInstancePlatformConfig
from .update_instance_pool_details import UpdateInstancePoolDetails
@@ -540,6 +544,7 @@
from .update_instance_source_details import UpdateInstanceSourceDetails
from .update_instance_source_via_boot_volume_details import UpdateInstanceSourceViaBootVolumeDetails
from .update_instance_source_via_image_details import UpdateInstanceSourceViaImageDetails
+from .update_instance_windows_licensing_config import UpdateInstanceWindowsLicensingConfig
from .update_internet_gateway_details import UpdateInternetGatewayDetails
from .update_ipv6_details import UpdateIpv6Details
from .update_launch_options import UpdateLaunchOptions
@@ -1014,10 +1019,13 @@
"LaunchInstanceAgentConfigDetails": LaunchInstanceAgentConfigDetails,
"LaunchInstanceAvailabilityConfigDetails": LaunchInstanceAvailabilityConfigDetails,
"LaunchInstanceDetails": LaunchInstanceDetails,
+ "LaunchInstanceLicensingConfig": LaunchInstanceLicensingConfig,
"LaunchInstancePlatformConfig": LaunchInstancePlatformConfig,
"LaunchInstanceShapeConfigDetails": LaunchInstanceShapeConfigDetails,
+ "LaunchInstanceWindowsLicensingConfig": LaunchInstanceWindowsLicensingConfig,
"LaunchOptions": LaunchOptions,
"LetterOfAuthority": LetterOfAuthority,
+ "LicensingConfig": LicensingConfig,
"ListIpInventoryDetails": ListIpInventoryDetails,
"LocalPeeringGateway": LocalPeeringGateway,
"LoopBackDrgAttachmentNetworkDetails": LoopBackDrgAttachmentNetworkDetails,
@@ -1141,6 +1149,7 @@
"UpdateInstanceConfigurationDetails": UpdateInstanceConfigurationDetails,
"UpdateInstanceConsoleConnectionDetails": UpdateInstanceConsoleConnectionDetails,
"UpdateInstanceDetails": UpdateInstanceDetails,
+ "UpdateInstanceLicensingConfig": UpdateInstanceLicensingConfig,
"UpdateInstanceMaintenanceEventDetails": UpdateInstanceMaintenanceEventDetails,
"UpdateInstancePlatformConfig": UpdateInstancePlatformConfig,
"UpdateInstancePoolDetails": UpdateInstancePoolDetails,
@@ -1149,6 +1158,7 @@
"UpdateInstanceSourceDetails": UpdateInstanceSourceDetails,
"UpdateInstanceSourceViaBootVolumeDetails": UpdateInstanceSourceViaBootVolumeDetails,
"UpdateInstanceSourceViaImageDetails": UpdateInstanceSourceViaImageDetails,
+ "UpdateInstanceWindowsLicensingConfig": UpdateInstanceWindowsLicensingConfig,
"UpdateInternetGatewayDetails": UpdateInternetGatewayDetails,
"UpdateIpv6Details": UpdateIpv6Details,
"UpdateLaunchOptions": UpdateLaunchOptions,
diff --git a/src/oci/core/models/instance.py b/src/oci/core/models/instance.py
index 80f8b9a4da..00d832c7fd 100644
--- a/src/oci/core/models/instance.py
+++ b/src/oci/core/models/instance.py
@@ -242,6 +242,10 @@ def __init__(self, **kwargs):
The value to assign to the instance_configuration_id property of this Instance.
:type instance_configuration_id: str
+ :param licensing_configs:
+ The value to assign to the licensing_configs property of this Instance.
+ :type licensing_configs: list[oci.core.models.LicensingConfig]
+
"""
self.swagger_types = {
'availability_domain': 'str',
@@ -276,7 +280,8 @@ def __init__(self, **kwargs):
'agent_config': 'InstanceAgentConfig',
'time_maintenance_reboot_due': 'datetime',
'platform_config': 'PlatformConfig',
- 'instance_configuration_id': 'str'
+ 'instance_configuration_id': 'str',
+ 'licensing_configs': 'list[LicensingConfig]'
}
self.attribute_map = {
@@ -312,7 +317,8 @@ def __init__(self, **kwargs):
'agent_config': 'agentConfig',
'time_maintenance_reboot_due': 'timeMaintenanceRebootDue',
'platform_config': 'platformConfig',
- 'instance_configuration_id': 'instanceConfigurationId'
+ 'instance_configuration_id': 'instanceConfigurationId',
+ 'licensing_configs': 'licensingConfigs'
}
self._availability_domain = None
@@ -348,6 +354,7 @@ def __init__(self, **kwargs):
self._time_maintenance_reboot_due = None
self._platform_config = None
self._instance_configuration_id = None
+ self._licensing_configs = None
@property
def availability_domain(self):
@@ -1293,6 +1300,30 @@ def instance_configuration_id(self, instance_configuration_id):
"""
self._instance_configuration_id = instance_configuration_id
+ @property
+ def licensing_configs(self):
+ """
+ Gets the licensing_configs of this Instance.
+ List of licensing configurations associated with the instance.
+
+
+ :return: The licensing_configs of this Instance.
+ :rtype: list[oci.core.models.LicensingConfig]
+ """
+ return self._licensing_configs
+
+ @licensing_configs.setter
+ def licensing_configs(self, licensing_configs):
+ """
+ Sets the licensing_configs of this Instance.
+ List of licensing configurations associated with the instance.
+
+
+ :param licensing_configs: The licensing_configs of this Instance.
+ :type: list[oci.core.models.LicensingConfig]
+ """
+ self._licensing_configs = licensing_configs
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/core/models/instance_configuration_launch_instance_details.py b/src/oci/core/models/instance_configuration_launch_instance_details.py
index 63b6e4355f..7b9763718c 100644
--- a/src/oci/core/models/instance_configuration_launch_instance_details.py
+++ b/src/oci/core/models/instance_configuration_launch_instance_details.py
@@ -155,6 +155,10 @@ def __init__(self, **kwargs):
The value to assign to the preemptible_instance_config property of this InstanceConfigurationLaunchInstanceDetails.
:type preemptible_instance_config: oci.core.models.PreemptibleInstanceConfigDetails
+ :param licensing_configs:
+ The value to assign to the licensing_configs property of this InstanceConfigurationLaunchInstanceDetails.
+ :type licensing_configs: list[oci.core.models.LaunchInstanceLicensingConfig]
+
"""
self.swagger_types = {
'availability_domain': 'str',
@@ -182,7 +186,8 @@ def __init__(self, **kwargs):
'preferred_maintenance_action': 'str',
'instance_options': 'InstanceConfigurationInstanceOptions',
'availability_config': 'InstanceConfigurationAvailabilityConfig',
- 'preemptible_instance_config': 'PreemptibleInstanceConfigDetails'
+ 'preemptible_instance_config': 'PreemptibleInstanceConfigDetails',
+ 'licensing_configs': 'list[LaunchInstanceLicensingConfig]'
}
self.attribute_map = {
@@ -211,7 +216,8 @@ def __init__(self, **kwargs):
'preferred_maintenance_action': 'preferredMaintenanceAction',
'instance_options': 'instanceOptions',
'availability_config': 'availabilityConfig',
- 'preemptible_instance_config': 'preemptibleInstanceConfig'
+ 'preemptible_instance_config': 'preemptibleInstanceConfig',
+ 'licensing_configs': 'licensingConfigs'
}
self._availability_domain = None
@@ -240,6 +246,7 @@ def __init__(self, **kwargs):
self._instance_options = None
self._availability_config = None
self._preemptible_instance_config = None
+ self._licensing_configs = None
@property
def availability_domain(self):
@@ -1089,6 +1096,30 @@ def preemptible_instance_config(self, preemptible_instance_config):
"""
self._preemptible_instance_config = preemptible_instance_config
+ @property
+ def licensing_configs(self):
+ """
+ Gets the licensing_configs of this InstanceConfigurationLaunchInstanceDetails.
+ List of licensing configurations associated with target launch values.
+
+
+ :return: The licensing_configs of this InstanceConfigurationLaunchInstanceDetails.
+ :rtype: list[oci.core.models.LaunchInstanceLicensingConfig]
+ """
+ return self._licensing_configs
+
+ @licensing_configs.setter
+ def licensing_configs(self, licensing_configs):
+ """
+ Sets the licensing_configs of this InstanceConfigurationLaunchInstanceDetails.
+ List of licensing configurations associated with target launch values.
+
+
+ :param licensing_configs: The licensing_configs of this InstanceConfigurationLaunchInstanceDetails.
+ :type: list[oci.core.models.LaunchInstanceLicensingConfig]
+ """
+ self._licensing_configs = licensing_configs
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/core/models/launch_instance_details.py b/src/oci/core/models/launch_instance_details.py
index 8f65e7aa08..5776332862 100644
--- a/src/oci/core/models/launch_instance_details.py
+++ b/src/oci/core/models/launch_instance_details.py
@@ -141,6 +141,10 @@ def __init__(self, **kwargs):
The value to assign to the instance_configuration_id property of this LaunchInstanceDetails.
:type instance_configuration_id: str
+ :param licensing_configs:
+ The value to assign to the licensing_configs property of this LaunchInstanceDetails.
+ :type licensing_configs: list[oci.core.models.LaunchInstanceLicensingConfig]
+
"""
self.swagger_types = {
'availability_domain': 'str',
@@ -172,7 +176,8 @@ def __init__(self, **kwargs):
'launch_volume_attachments': 'list[LaunchAttachVolumeDetails]',
'is_pv_encryption_in_transit_enabled': 'bool',
'platform_config': 'LaunchInstancePlatformConfig',
- 'instance_configuration_id': 'str'
+ 'instance_configuration_id': 'str',
+ 'licensing_configs': 'list[LaunchInstanceLicensingConfig]'
}
self.attribute_map = {
@@ -205,7 +210,8 @@ def __init__(self, **kwargs):
'launch_volume_attachments': 'launchVolumeAttachments',
'is_pv_encryption_in_transit_enabled': 'isPvEncryptionInTransitEnabled',
'platform_config': 'platformConfig',
- 'instance_configuration_id': 'instanceConfigurationId'
+ 'instance_configuration_id': 'instanceConfigurationId',
+ 'licensing_configs': 'licensingConfigs'
}
self._availability_domain = None
@@ -238,6 +244,7 @@ def __init__(self, **kwargs):
self._is_pv_encryption_in_transit_enabled = None
self._platform_config = None
self._instance_configuration_id = None
+ self._licensing_configs = None
@property
def availability_domain(self):
@@ -1187,6 +1194,30 @@ def instance_configuration_id(self, instance_configuration_id):
"""
self._instance_configuration_id = instance_configuration_id
+ @property
+ def licensing_configs(self):
+ """
+ Gets the licensing_configs of this LaunchInstanceDetails.
+ List of licensing configurations associated with target launch values.
+
+
+ :return: The licensing_configs of this LaunchInstanceDetails.
+ :rtype: list[oci.core.models.LaunchInstanceLicensingConfig]
+ """
+ return self._licensing_configs
+
+ @licensing_configs.setter
+ def licensing_configs(self, licensing_configs):
+ """
+ Sets the licensing_configs of this LaunchInstanceDetails.
+ List of licensing configurations associated with target launch values.
+
+
+ :param licensing_configs: The licensing_configs of this LaunchInstanceDetails.
+ :type: list[oci.core.models.LaunchInstanceLicensingConfig]
+ """
+ self._licensing_configs = licensing_configs
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/core/models/launch_instance_licensing_config.py b/src/oci/core/models/launch_instance_licensing_config.py
new file mode 100644
index 0000000000..d461396f4e
--- /dev/null
+++ b/src/oci/core/models/launch_instance_licensing_config.py
@@ -0,0 +1,152 @@
+# 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: 20160918
+
+
+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 LaunchInstanceLicensingConfig(object):
+ """
+ The license config requested for the instance.
+ """
+
+ #: A constant which can be used with the type property of a LaunchInstanceLicensingConfig.
+ #: This constant has a value of "WINDOWS"
+ TYPE_WINDOWS = "WINDOWS"
+
+ #: A constant which can be used with the license_type property of a LaunchInstanceLicensingConfig.
+ #: This constant has a value of "OCI_PROVIDED"
+ LICENSE_TYPE_OCI_PROVIDED = "OCI_PROVIDED"
+
+ #: A constant which can be used with the license_type property of a LaunchInstanceLicensingConfig.
+ #: This constant has a value of "BRING_YOUR_OWN_LICENSE"
+ LICENSE_TYPE_BRING_YOUR_OWN_LICENSE = "BRING_YOUR_OWN_LICENSE"
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new LaunchInstanceLicensingConfig 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.core.models.LaunchInstanceWindowsLicensingConfig`
+
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param type:
+ The value to assign to the type property of this LaunchInstanceLicensingConfig.
+ Allowed values for this property are: "WINDOWS", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type type: str
+
+ :param license_type:
+ The value to assign to the license_type property of this LaunchInstanceLicensingConfig.
+ Allowed values for this property are: "OCI_PROVIDED", "BRING_YOUR_OWN_LICENSE", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type license_type: str
+
+ """
+ self.swagger_types = {
+ 'type': 'str',
+ 'license_type': 'str'
+ }
+
+ self.attribute_map = {
+ 'type': 'type',
+ 'license_type': 'licenseType'
+ }
+
+ self._type = None
+ self._license_type = 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['type']
+
+ if type == 'WINDOWS':
+ return 'LaunchInstanceWindowsLicensingConfig'
+ else:
+ return 'LaunchInstanceLicensingConfig'
+
+ @property
+ def type(self):
+ """
+ **[Required]** Gets the type of this LaunchInstanceLicensingConfig.
+ Operating System type of the Configuration.
+
+ Allowed values for this property are: "WINDOWS", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The type of this LaunchInstanceLicensingConfig.
+ :rtype: str
+ """
+ return self._type
+
+ @type.setter
+ def type(self, type):
+ """
+ Sets the type of this LaunchInstanceLicensingConfig.
+ Operating System type of the Configuration.
+
+
+ :param type: The type of this LaunchInstanceLicensingConfig.
+ :type: str
+ """
+ allowed_values = ["WINDOWS"]
+ if not value_allowed_none_or_none_sentinel(type, allowed_values):
+ type = 'UNKNOWN_ENUM_VALUE'
+ self._type = type
+
+ @property
+ def license_type(self):
+ """
+ Gets the license_type of this LaunchInstanceLicensingConfig.
+ License Type for the OS license.
+ * `OCI_PROVIDED` - OCI provided license (e.g. metered $/OCPU-hour).
+ * `BRING_YOUR_OWN_LICENSE` - Bring your own license.
+
+ Allowed values for this property are: "OCI_PROVIDED", "BRING_YOUR_OWN_LICENSE", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The license_type of this LaunchInstanceLicensingConfig.
+ :rtype: str
+ """
+ return self._license_type
+
+ @license_type.setter
+ def license_type(self, license_type):
+ """
+ Sets the license_type of this LaunchInstanceLicensingConfig.
+ License Type for the OS license.
+ * `OCI_PROVIDED` - OCI provided license (e.g. metered $/OCPU-hour).
+ * `BRING_YOUR_OWN_LICENSE` - Bring your own license.
+
+
+ :param license_type: The license_type of this LaunchInstanceLicensingConfig.
+ :type: str
+ """
+ allowed_values = ["OCI_PROVIDED", "BRING_YOUR_OWN_LICENSE"]
+ if not value_allowed_none_or_none_sentinel(license_type, allowed_values):
+ license_type = 'UNKNOWN_ENUM_VALUE'
+ self._license_type = license_type
+
+ 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/core/models/launch_instance_windows_licensing_config.py b/src/oci/core/models/launch_instance_windows_licensing_config.py
new file mode 100644
index 0000000000..7324c9353d
--- /dev/null
+++ b/src/oci/core/models/launch_instance_windows_licensing_config.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: 20160918
+
+from .launch_instance_licensing_config import LaunchInstanceLicensingConfig
+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 LaunchInstanceWindowsLicensingConfig(LaunchInstanceLicensingConfig):
+ """
+ The default windows licensing config.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new LaunchInstanceWindowsLicensingConfig object with values from keyword arguments. The default value of the :py:attr:`~oci.core.models.LaunchInstanceWindowsLicensingConfig.type` attribute
+ of this class is ``WINDOWS`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param type:
+ The value to assign to the type property of this LaunchInstanceWindowsLicensingConfig.
+ Allowed values for this property are: "WINDOWS"
+ :type type: str
+
+ :param license_type:
+ The value to assign to the license_type property of this LaunchInstanceWindowsLicensingConfig.
+ Allowed values for this property are: "OCI_PROVIDED", "BRING_YOUR_OWN_LICENSE"
+ :type license_type: str
+
+ """
+ self.swagger_types = {
+ 'type': 'str',
+ 'license_type': 'str'
+ }
+
+ self.attribute_map = {
+ 'type': 'type',
+ 'license_type': 'licenseType'
+ }
+
+ self._type = None
+ self._license_type = None
+ self._type = 'WINDOWS'
+
+ 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/core/models/licensing_config.py b/src/oci/core/models/licensing_config.py
new file mode 100644
index 0000000000..9082393601
--- /dev/null
+++ b/src/oci/core/models/licensing_config.py
@@ -0,0 +1,166 @@
+# 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: 20160918
+
+
+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 LicensingConfig(object):
+ """
+ Configuration of the Operating System license.
+ """
+
+ #: A constant which can be used with the type property of a LicensingConfig.
+ #: This constant has a value of "WINDOWS"
+ TYPE_WINDOWS = "WINDOWS"
+
+ #: A constant which can be used with the license_type property of a LicensingConfig.
+ #: This constant has a value of "OCI_PROVIDED"
+ LICENSE_TYPE_OCI_PROVIDED = "OCI_PROVIDED"
+
+ #: A constant which can be used with the license_type property of a LicensingConfig.
+ #: This constant has a value of "BRING_YOUR_OWN_LICENSE"
+ LICENSE_TYPE_BRING_YOUR_OWN_LICENSE = "BRING_YOUR_OWN_LICENSE"
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new LicensingConfig object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param type:
+ The value to assign to the type property of this LicensingConfig.
+ Allowed values for this property are: "WINDOWS", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type type: str
+
+ :param license_type:
+ The value to assign to the license_type property of this LicensingConfig.
+ Allowed values for this property are: "OCI_PROVIDED", "BRING_YOUR_OWN_LICENSE", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type license_type: str
+
+ :param os_version:
+ The value to assign to the os_version property of this LicensingConfig.
+ :type os_version: str
+
+ """
+ self.swagger_types = {
+ 'type': 'str',
+ 'license_type': 'str',
+ 'os_version': 'str'
+ }
+
+ self.attribute_map = {
+ 'type': 'type',
+ 'license_type': 'licenseType',
+ 'os_version': 'osVersion'
+ }
+
+ self._type = None
+ self._license_type = None
+ self._os_version = None
+
+ @property
+ def type(self):
+ """
+ Gets the type of this LicensingConfig.
+ Operating System type of the Configuration.
+
+ Allowed values for this property are: "WINDOWS", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The type of this LicensingConfig.
+ :rtype: str
+ """
+ return self._type
+
+ @type.setter
+ def type(self, type):
+ """
+ Sets the type of this LicensingConfig.
+ Operating System type of the Configuration.
+
+
+ :param type: The type of this LicensingConfig.
+ :type: str
+ """
+ allowed_values = ["WINDOWS"]
+ if not value_allowed_none_or_none_sentinel(type, allowed_values):
+ type = 'UNKNOWN_ENUM_VALUE'
+ self._type = type
+
+ @property
+ def license_type(self):
+ """
+ Gets the license_type of this LicensingConfig.
+ License Type for the OS license.
+ * `OCI_PROVIDED` - OCI provided license (e.g. metered $/OCPU-hour).
+ * `BRING_YOUR_OWN_LICENSE` - Bring your own license.
+
+ Allowed values for this property are: "OCI_PROVIDED", "BRING_YOUR_OWN_LICENSE", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The license_type of this LicensingConfig.
+ :rtype: str
+ """
+ return self._license_type
+
+ @license_type.setter
+ def license_type(self, license_type):
+ """
+ Sets the license_type of this LicensingConfig.
+ License Type for the OS license.
+ * `OCI_PROVIDED` - OCI provided license (e.g. metered $/OCPU-hour).
+ * `BRING_YOUR_OWN_LICENSE` - Bring your own license.
+
+
+ :param license_type: The license_type of this LicensingConfig.
+ :type: str
+ """
+ allowed_values = ["OCI_PROVIDED", "BRING_YOUR_OWN_LICENSE"]
+ if not value_allowed_none_or_none_sentinel(license_type, allowed_values):
+ license_type = 'UNKNOWN_ENUM_VALUE'
+ self._license_type = license_type
+
+ @property
+ def os_version(self):
+ """
+ Gets the os_version of this LicensingConfig.
+ The Operating System version of the license config.
+
+
+ :return: The os_version of this LicensingConfig.
+ :rtype: str
+ """
+ return self._os_version
+
+ @os_version.setter
+ def os_version(self, os_version):
+ """
+ Sets the os_version of this LicensingConfig.
+ The Operating System version of the license config.
+
+
+ :param os_version: The os_version of this LicensingConfig.
+ :type: str
+ """
+ self._os_version = os_version
+
+ 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/core/models/update_instance_details.py b/src/oci/core/models/update_instance_details.py
index cff594fb79..139eabaf76 100644
--- a/src/oci/core/models/update_instance_details.py
+++ b/src/oci/core/models/update_instance_details.py
@@ -105,6 +105,10 @@ def __init__(self, **kwargs):
The value to assign to the platform_config property of this UpdateInstanceDetails.
:type platform_config: oci.core.models.UpdateInstancePlatformConfig
+ :param licensing_configs:
+ The value to assign to the licensing_configs property of this UpdateInstanceDetails.
+ :type licensing_configs: list[oci.core.models.UpdateInstanceLicensingConfig]
+
"""
self.swagger_types = {
'capacity_reservation_id': 'str',
@@ -125,7 +129,8 @@ def __init__(self, **kwargs):
'availability_config': 'UpdateInstanceAvailabilityConfigDetails',
'time_maintenance_reboot_due': 'datetime',
'dedicated_vm_host_id': 'str',
- 'platform_config': 'UpdateInstancePlatformConfig'
+ 'platform_config': 'UpdateInstancePlatformConfig',
+ 'licensing_configs': 'list[UpdateInstanceLicensingConfig]'
}
self.attribute_map = {
@@ -147,7 +152,8 @@ def __init__(self, **kwargs):
'availability_config': 'availabilityConfig',
'time_maintenance_reboot_due': 'timeMaintenanceRebootDue',
'dedicated_vm_host_id': 'dedicatedVmHostId',
- 'platform_config': 'platformConfig'
+ 'platform_config': 'platformConfig',
+ 'licensing_configs': 'licensingConfigs'
}
self._capacity_reservation_id = None
@@ -169,6 +175,7 @@ def __init__(self, **kwargs):
self._time_maintenance_reboot_due = None
self._dedicated_vm_host_id = None
self._platform_config = None
+ self._licensing_configs = None
@property
def capacity_reservation_id(self):
@@ -799,6 +806,30 @@ def platform_config(self, platform_config):
"""
self._platform_config = platform_config
+ @property
+ def licensing_configs(self):
+ """
+ Gets the licensing_configs of this UpdateInstanceDetails.
+ The list of liscensing configurations with target update values.
+
+
+ :return: The licensing_configs of this UpdateInstanceDetails.
+ :rtype: list[oci.core.models.UpdateInstanceLicensingConfig]
+ """
+ return self._licensing_configs
+
+ @licensing_configs.setter
+ def licensing_configs(self, licensing_configs):
+ """
+ Sets the licensing_configs of this UpdateInstanceDetails.
+ The list of liscensing configurations with target update values.
+
+
+ :param licensing_configs: The licensing_configs of this UpdateInstanceDetails.
+ :type: list[oci.core.models.UpdateInstanceLicensingConfig]
+ """
+ self._licensing_configs = licensing_configs
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/core/models/update_instance_licensing_config.py b/src/oci/core/models/update_instance_licensing_config.py
new file mode 100644
index 0000000000..7d0e4c255b
--- /dev/null
+++ b/src/oci/core/models/update_instance_licensing_config.py
@@ -0,0 +1,152 @@
+# 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: 20160918
+
+
+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 UpdateInstanceLicensingConfig(object):
+ """
+ The target license config to be updated on the instance.
+ """
+
+ #: A constant which can be used with the type property of a UpdateInstanceLicensingConfig.
+ #: This constant has a value of "WINDOWS"
+ TYPE_WINDOWS = "WINDOWS"
+
+ #: A constant which can be used with the license_type property of a UpdateInstanceLicensingConfig.
+ #: This constant has a value of "OCI_PROVIDED"
+ LICENSE_TYPE_OCI_PROVIDED = "OCI_PROVIDED"
+
+ #: A constant which can be used with the license_type property of a UpdateInstanceLicensingConfig.
+ #: This constant has a value of "BRING_YOUR_OWN_LICENSE"
+ LICENSE_TYPE_BRING_YOUR_OWN_LICENSE = "BRING_YOUR_OWN_LICENSE"
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new UpdateInstanceLicensingConfig 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.core.models.UpdateInstanceWindowsLicensingConfig`
+
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param type:
+ The value to assign to the type property of this UpdateInstanceLicensingConfig.
+ Allowed values for this property are: "WINDOWS"
+ :type type: str
+
+ :param license_type:
+ The value to assign to the license_type property of this UpdateInstanceLicensingConfig.
+ Allowed values for this property are: "OCI_PROVIDED", "BRING_YOUR_OWN_LICENSE"
+ :type license_type: str
+
+ """
+ self.swagger_types = {
+ 'type': 'str',
+ 'license_type': 'str'
+ }
+
+ self.attribute_map = {
+ 'type': 'type',
+ 'license_type': 'licenseType'
+ }
+
+ self._type = None
+ self._license_type = 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['type']
+
+ if type == 'WINDOWS':
+ return 'UpdateInstanceWindowsLicensingConfig'
+ else:
+ return 'UpdateInstanceLicensingConfig'
+
+ @property
+ def type(self):
+ """
+ **[Required]** Gets the type of this UpdateInstanceLicensingConfig.
+ Operating system type of the configuration.
+
+ Allowed values for this property are: "WINDOWS"
+
+
+ :return: The type of this UpdateInstanceLicensingConfig.
+ :rtype: str
+ """
+ return self._type
+
+ @type.setter
+ def type(self, type):
+ """
+ Sets the type of this UpdateInstanceLicensingConfig.
+ Operating system type of the configuration.
+
+
+ :param type: The type of this UpdateInstanceLicensingConfig.
+ :type: str
+ """
+ allowed_values = ["WINDOWS"]
+ if not value_allowed_none_or_none_sentinel(type, allowed_values):
+ raise ValueError(
+ f"Invalid value for `type`, must be None or one of {allowed_values}"
+ )
+ self._type = type
+
+ @property
+ def license_type(self):
+ """
+ Gets the license_type of this UpdateInstanceLicensingConfig.
+ License Type for the OS license.
+ * `OCI_PROVIDED` - OCI provided license (e.g. metered $/OCPU-hour).
+ * `BRING_YOUR_OWN_LICENSE` - Bring your own license.
+
+ Allowed values for this property are: "OCI_PROVIDED", "BRING_YOUR_OWN_LICENSE"
+
+
+ :return: The license_type of this UpdateInstanceLicensingConfig.
+ :rtype: str
+ """
+ return self._license_type
+
+ @license_type.setter
+ def license_type(self, license_type):
+ """
+ Sets the license_type of this UpdateInstanceLicensingConfig.
+ License Type for the OS license.
+ * `OCI_PROVIDED` - OCI provided license (e.g. metered $/OCPU-hour).
+ * `BRING_YOUR_OWN_LICENSE` - Bring your own license.
+
+
+ :param license_type: The license_type of this UpdateInstanceLicensingConfig.
+ :type: str
+ """
+ allowed_values = ["OCI_PROVIDED", "BRING_YOUR_OWN_LICENSE"]
+ if not value_allowed_none_or_none_sentinel(license_type, allowed_values):
+ raise ValueError(
+ f"Invalid value for `license_type`, must be None or one of {allowed_values}"
+ )
+ self._license_type = license_type
+
+ 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/core/models/update_instance_windows_licensing_config.py b/src/oci/core/models/update_instance_windows_licensing_config.py
new file mode 100644
index 0000000000..780c7fcfba
--- /dev/null
+++ b/src/oci/core/models/update_instance_windows_licensing_config.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: 20160918
+
+from .update_instance_licensing_config import UpdateInstanceLicensingConfig
+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 UpdateInstanceWindowsLicensingConfig(UpdateInstanceLicensingConfig):
+ """
+ The default windows licensing config.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new UpdateInstanceWindowsLicensingConfig object with values from keyword arguments. The default value of the :py:attr:`~oci.core.models.UpdateInstanceWindowsLicensingConfig.type` attribute
+ of this class is ``WINDOWS`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param type:
+ The value to assign to the type property of this UpdateInstanceWindowsLicensingConfig.
+ Allowed values for this property are: "WINDOWS"
+ :type type: str
+
+ :param license_type:
+ The value to assign to the license_type property of this UpdateInstanceWindowsLicensingConfig.
+ Allowed values for this property are: "OCI_PROVIDED", "BRING_YOUR_OWN_LICENSE"
+ :type license_type: str
+
+ """
+ self.swagger_types = {
+ 'type': 'str',
+ 'license_type': 'str'
+ }
+
+ self.attribute_map = {
+ 'type': 'type',
+ 'license_type': 'licenseType'
+ }
+
+ self._type = None
+ self._license_type = None
+ self._type = 'WINDOWS'
+
+ 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/data_flow/data_flow_client.py b/src/oci/data_flow/data_flow_client.py
index e0327c9074..73c3d8260a 100644
--- a/src/oci/data_flow/data_flow_client.py
+++ b/src/oci/data_flow/data_flow_client.py
@@ -116,6 +116,108 @@ def __init__(self, config, **kwargs):
self.retry_strategy = kwargs.get('retry_strategy')
self.circuit_breaker_callback = kwargs.get('circuit_breaker_callback')
+ def cascading_delete_application(self, application_id, **kwargs):
+ """
+ Deletes an application using an `applicationId` and terminates related runs. This operation will timeout in approximate 30 minutes if any related Runs are not terminated successfully.
+
+
+ :param str application_id: (required)
+ The unique ID for an application.
+
+ :param str opc_request_id: (optional)
+ Unique identifier for the request. If provided, the returned request ID will include this value.
+ Otherwise, a random request ID will be generated by the service.
+
+ :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 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 None
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use cascading_delete_application API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['applicationId']
+ resource_path = "/applications/{applicationId}/actions/cascadingDeleteApplication"
+ method = "POST"
+ operation_name = "cascading_delete_application"
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/data-flow/20200129/Application/CascadingDeleteApplication"
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "opc_request_id",
+ "if_match"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"cascading_delete_application got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "applicationId": application_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),
+ "if-match": kwargs.get("if_match", 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,
+ 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 change_application_compartment(self, application_id, change_application_compartment_details, **kwargs):
"""
Moves an application into a different compartment. When provided, If-Match is checked against ETag values of the resource.
diff --git a/src/oci/data_flow/data_flow_client_composite_operations.py b/src/oci/data_flow/data_flow_client_composite_operations.py
index 1e1cb47cf0..9ae4d1111c 100644
--- a/src/oci/data_flow/data_flow_client_composite_operations.py
+++ b/src/oci/data_flow/data_flow_client_composite_operations.py
@@ -25,6 +25,45 @@ def __init__(self, client, **kwargs):
"""
self.client = client
+ def cascading_delete_application_and_wait_for_state(self, application_id, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}):
+ """
+ Calls :py:func:`~oci.data_flow.DataFlowClient.cascading_delete_application` and waits for the :py:class:`~oci.data_flow.models.WorkRequest`
+ to enter the given state(s).
+
+ :param str application_id: (required)
+ The unique ID for an application.
+
+ :param list[str] wait_for_states:
+ An array of states to wait on. These should be valid values for :py:attr:`~oci.data_flow.models.WorkRequest.status`
+
+ :param dict operation_kwargs:
+ A dictionary of keyword arguments to pass to :py:func:`~oci.data_flow.DataFlowClient.cascading_delete_application`
+
+ :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.cascading_delete_application(application_id, **operation_kwargs)
+ if not wait_for_states:
+ return operation_result
+ lowered_wait_for_states = [w.lower() for w in wait_for_states]
+ if 'opc-work-request-id' not in operation_result.headers:
+ return operation_result
+ wait_for_resource_id = operation_result.headers['opc-work-request-id']
+
+ try:
+ waiter_result = oci.wait_until(
+ self.client,
+ self.client.get_work_request(wait_for_resource_id),
+ evaluate_response=lambda r: getattr(r.data, 'status') and getattr(r.data, 'status').lower() in lowered_wait_for_states,
+ **waiter_kwargs
+ )
+ result_to_return = waiter_result
+
+ return result_to_return
+ except Exception as e:
+ raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e)
+
def change_private_endpoint_compartment_and_wait_for_state(self, private_endpoint_id, change_private_endpoint_compartment_details, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}):
"""
Calls :py:func:`~oci.data_flow.DataFlowClient.change_private_endpoint_compartment` and waits for the :py:class:`~oci.data_flow.models.WorkRequest`
diff --git a/src/oci/data_flow/models/application.py b/src/oci/data_flow/models/application.py
index e8a19b3d0d..1eae557a8b 100644
--- a/src/oci/data_flow/models/application.py
+++ b/src/oci/data_flow/models/application.py
@@ -35,6 +35,10 @@ class Application(object):
#: This constant has a value of "ACTIVE"
LIFECYCLE_STATE_ACTIVE = "ACTIVE"
+ #: A constant which can be used with the lifecycle_state property of a Application.
+ #: This constant has a value of "DELETING"
+ LIFECYCLE_STATE_DELETING = "DELETING"
+
#: A constant which can be used with the lifecycle_state property of a Application.
#: This constant has a value of "DELETED"
LIFECYCLE_STATE_DELETED = "DELETED"
@@ -136,7 +140,7 @@ def __init__(self, **kwargs):
:param lifecycle_state:
The value to assign to the lifecycle_state property of this Application.
- Allowed values for this property are: "ACTIVE", "DELETED", "INACTIVE", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "ACTIVE", "DELETING", "DELETED", "INACTIVE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type lifecycle_state: str
@@ -792,7 +796,7 @@ def lifecycle_state(self):
**[Required]** Gets the lifecycle_state of this Application.
The current state of this application.
- Allowed values for this property are: "ACTIVE", "DELETED", "INACTIVE", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "ACTIVE", "DELETING", "DELETED", "INACTIVE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -811,7 +815,7 @@ def lifecycle_state(self, lifecycle_state):
:param lifecycle_state: The lifecycle_state of this Application.
:type: str
"""
- allowed_values = ["ACTIVE", "DELETED", "INACTIVE"]
+ allowed_values = ["ACTIVE", "DELETING", "DELETED", "INACTIVE"]
if not value_allowed_none_or_none_sentinel(lifecycle_state, allowed_values):
lifecycle_state = 'UNKNOWN_ENUM_VALUE'
self._lifecycle_state = lifecycle_state
diff --git a/src/oci/data_flow/models/application_summary.py b/src/oci/data_flow/models/application_summary.py
index 10915b58c7..86f687b3f9 100644
--- a/src/oci/data_flow/models/application_summary.py
+++ b/src/oci/data_flow/models/application_summary.py
@@ -35,6 +35,10 @@ class ApplicationSummary(object):
#: This constant has a value of "ACTIVE"
LIFECYCLE_STATE_ACTIVE = "ACTIVE"
+ #: A constant which can be used with the lifecycle_state property of a ApplicationSummary.
+ #: This constant has a value of "DELETING"
+ LIFECYCLE_STATE_DELETING = "DELETING"
+
#: A constant which can be used with the lifecycle_state property of a ApplicationSummary.
#: This constant has a value of "DELETED"
LIFECYCLE_STATE_DELETED = "DELETED"
@@ -88,7 +92,7 @@ def __init__(self, **kwargs):
:param lifecycle_state:
The value to assign to the lifecycle_state property of this ApplicationSummary.
- Allowed values for this property are: "ACTIVE", "DELETED", "INACTIVE", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "ACTIVE", "DELETING", "DELETED", "INACTIVE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type lifecycle_state: str
@@ -342,7 +346,7 @@ def lifecycle_state(self):
**[Required]** Gets the lifecycle_state of this ApplicationSummary.
The current state of this application.
- Allowed values for this property are: "ACTIVE", "DELETED", "INACTIVE", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "ACTIVE", "DELETING", "DELETED", "INACTIVE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -361,7 +365,7 @@ def lifecycle_state(self, lifecycle_state):
:param lifecycle_state: The lifecycle_state of this ApplicationSummary.
:type: str
"""
- allowed_values = ["ACTIVE", "DELETED", "INACTIVE"]
+ allowed_values = ["ACTIVE", "DELETING", "DELETED", "INACTIVE"]
if not value_allowed_none_or_none_sentinel(lifecycle_state, allowed_values):
lifecycle_state = 'UNKNOWN_ENUM_VALUE'
self._lifecycle_state = lifecycle_state
diff --git a/src/oci/database/database_client.py b/src/oci/database/database_client.py
index 8c0f2857e5..6da59f3ddb 100644
--- a/src/oci/database/database_client.py
+++ b/src/oci/database/database_client.py
@@ -37911,6 +37911,9 @@ def rotate_autonomous_container_database_encryption_key(self, autonomous_contain
:param str opc_request_id: (optional)
Unique identifier for the request.
+ :param oci.database.models.RotateAutonomousContainerDatabaseEncryptionKeyDetails rotate_autonomous_container_database_encryption_key_details: (optional)
+ Key details provided by the user for rotate key operation for Autonomous Database.
+
: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.
@@ -37942,7 +37945,8 @@ def rotate_autonomous_container_database_encryption_key(self, autonomous_contain
"retry_strategy",
"if_match",
"opc_retry_token",
- "opc_request_id"
+ "opc_request_id",
+ "rotate_autonomous_container_database_encryption_key_details"
]
extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
if extra_kwargs:
@@ -37984,6 +37988,7 @@ def rotate_autonomous_container_database_encryption_key(self, autonomous_contain
method=method,
path_params=path_params,
header_params=header_params,
+ body=kwargs.get('rotate_autonomous_container_database_encryption_key_details'),
response_type="AutonomousContainerDatabase",
allow_control_chars=kwargs.get('allow_control_chars'),
operation_name=operation_name,
@@ -37995,6 +38000,7 @@ def rotate_autonomous_container_database_encryption_key(self, autonomous_contain
method=method,
path_params=path_params,
header_params=header_params,
+ body=kwargs.get('rotate_autonomous_container_database_encryption_key_details'),
response_type="AutonomousContainerDatabase",
allow_control_chars=kwargs.get('allow_control_chars'),
operation_name=operation_name,
@@ -38028,6 +38034,9 @@ def rotate_autonomous_database_encryption_key(self, autonomous_database_id, **kw
:param str opc_request_id: (optional)
Unique identifier for the request.
+ :param oci.database.models.RotateAutonomousDatabaseEncryptionKeyDetails rotate_autonomous_database_encryption_key_details: (optional)
+ Key details provided by the user for rotate key operation for Autonomous Database.
+
: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.
@@ -38059,7 +38068,8 @@ def rotate_autonomous_database_encryption_key(self, autonomous_database_id, **kw
"retry_strategy",
"if_match",
"opc_retry_token",
- "opc_request_id"
+ "opc_request_id",
+ "rotate_autonomous_database_encryption_key_details"
]
extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
if extra_kwargs:
@@ -38101,6 +38111,7 @@ def rotate_autonomous_database_encryption_key(self, autonomous_database_id, **kw
method=method,
path_params=path_params,
header_params=header_params,
+ body=kwargs.get('rotate_autonomous_database_encryption_key_details'),
response_type="AutonomousDatabase",
allow_control_chars=kwargs.get('allow_control_chars'),
operation_name=operation_name,
@@ -38112,6 +38123,7 @@ def rotate_autonomous_database_encryption_key(self, autonomous_database_id, **kw
method=method,
path_params=path_params,
header_params=header_params,
+ body=kwargs.get('rotate_autonomous_database_encryption_key_details'),
response_type="AutonomousDatabase",
allow_control_chars=kwargs.get('allow_control_chars'),
operation_name=operation_name,
diff --git a/src/oci/database/models/__init__.py b/src/oci/database/models/__init__.py
index db29367f3d..44655b1638 100644
--- a/src/oci/database/models/__init__.py
+++ b/src/oci/database/models/__init__.py
@@ -376,6 +376,8 @@
from .resource_pool_summary import ResourcePoolSummary
from .restore_autonomous_database_details import RestoreAutonomousDatabaseDetails
from .restore_database_details import RestoreDatabaseDetails
+from .rotate_autonomous_container_database_encryption_key_details import RotateAutonomousContainerDatabaseEncryptionKeyDetails
+from .rotate_autonomous_database_encryption_key_details import RotateAutonomousDatabaseEncryptionKeyDetails
from .rotate_autonomous_vm_cluster_ords_certs_details import RotateAutonomousVmClusterOrdsCertsDetails
from .rotate_autonomous_vm_cluster_ssl_certs_details import RotateAutonomousVmClusterSslCertsDetails
from .rotate_cloud_autonomous_vm_cluster_ords_certs_details import RotateCloudAutonomousVmClusterOrdsCertsDetails
@@ -835,6 +837,8 @@
"ResourcePoolSummary": ResourcePoolSummary,
"RestoreAutonomousDatabaseDetails": RestoreAutonomousDatabaseDetails,
"RestoreDatabaseDetails": RestoreDatabaseDetails,
+ "RotateAutonomousContainerDatabaseEncryptionKeyDetails": RotateAutonomousContainerDatabaseEncryptionKeyDetails,
+ "RotateAutonomousDatabaseEncryptionKeyDetails": RotateAutonomousDatabaseEncryptionKeyDetails,
"RotateAutonomousVmClusterOrdsCertsDetails": RotateAutonomousVmClusterOrdsCertsDetails,
"RotateAutonomousVmClusterSslCertsDetails": RotateAutonomousVmClusterSslCertsDetails,
"RotateCloudAutonomousVmClusterOrdsCertsDetails": RotateCloudAutonomousVmClusterOrdsCertsDetails,
diff --git a/src/oci/database/models/rotate_autonomous_container_database_encryption_key_details.py b/src/oci/database/models/rotate_autonomous_container_database_encryption_key_details.py
new file mode 100644
index 0000000000..e2a5b39df9
--- /dev/null
+++ b/src/oci/database/models/rotate_autonomous_container_database_encryption_key_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: 20160918
+
+
+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 RotateAutonomousContainerDatabaseEncryptionKeyDetails(object):
+ """
+ Key details provided by the user for rotate key operation for Autonomous Database.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new RotateAutonomousContainerDatabaseEncryptionKeyDetails object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param key_version_id:
+ The value to assign to the key_version_id property of this RotateAutonomousContainerDatabaseEncryptionKeyDetails.
+ :type key_version_id: str
+
+ """
+ self.swagger_types = {
+ 'key_version_id': 'str'
+ }
+
+ self.attribute_map = {
+ 'key_version_id': 'keyVersionId'
+ }
+
+ self._key_version_id = None
+
+ @property
+ def key_version_id(self):
+ """
+ Gets the key_version_id of this RotateAutonomousContainerDatabaseEncryptionKeyDetails.
+ Key version ocid of the key provided by the user for rotate operation. `OCID`__.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :return: The key_version_id of this RotateAutonomousContainerDatabaseEncryptionKeyDetails.
+ :rtype: str
+ """
+ return self._key_version_id
+
+ @key_version_id.setter
+ def key_version_id(self, key_version_id):
+ """
+ Sets the key_version_id of this RotateAutonomousContainerDatabaseEncryptionKeyDetails.
+ Key version ocid of the key provided by the user for rotate operation. `OCID`__.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :param key_version_id: The key_version_id of this RotateAutonomousContainerDatabaseEncryptionKeyDetails.
+ :type: str
+ """
+ self._key_version_id = key_version_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/database/models/rotate_autonomous_database_encryption_key_details.py b/src/oci/database/models/rotate_autonomous_database_encryption_key_details.py
new file mode 100644
index 0000000000..6e48d49689
--- /dev/null
+++ b/src/oci/database/models/rotate_autonomous_database_encryption_key_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: 20160918
+
+
+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 RotateAutonomousDatabaseEncryptionKeyDetails(object):
+ """
+ Key details provided by the user for rotate key operation for Autonomous Database.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new RotateAutonomousDatabaseEncryptionKeyDetails object with values from keyword arguments.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param key_version_id:
+ The value to assign to the key_version_id property of this RotateAutonomousDatabaseEncryptionKeyDetails.
+ :type key_version_id: str
+
+ """
+ self.swagger_types = {
+ 'key_version_id': 'str'
+ }
+
+ self.attribute_map = {
+ 'key_version_id': 'keyVersionId'
+ }
+
+ self._key_version_id = None
+
+ @property
+ def key_version_id(self):
+ """
+ Gets the key_version_id of this RotateAutonomousDatabaseEncryptionKeyDetails.
+ Key version ocid of the key provided by the user for rotate operation. `OCID`__.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :return: The key_version_id of this RotateAutonomousDatabaseEncryptionKeyDetails.
+ :rtype: str
+ """
+ return self._key_version_id
+
+ @key_version_id.setter
+ def key_version_id(self, key_version_id):
+ """
+ Sets the key_version_id of this RotateAutonomousDatabaseEncryptionKeyDetails.
+ Key version ocid of the key provided by the user for rotate operation. `OCID`__.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :param key_version_id: The key_version_id of this RotateAutonomousDatabaseEncryptionKeyDetails.
+ :type: str
+ """
+ self._key_version_id = key_version_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/disaster_recovery/disaster_recovery_client.py b/src/oci/disaster_recovery/disaster_recovery_client.py
index 580d41f84e..0171ef496e 100644
--- a/src/oci/disaster_recovery/disaster_recovery_client.py
+++ b/src/oci/disaster_recovery/disaster_recovery_client.py
@@ -2099,6 +2099,11 @@ def list_dr_plans(self, dr_protection_group_id, **kwargs):
:param str opc_request_id: (optional)
The client request ID for tracing.
+ :param str lifecycle_sub_state: (optional)
+ A filter to return only DR plans that match the given lifecycle sub-state.
+
+ Allowed values are: "NEEDS_REFRESH", "NEEDS_VERIFICATION", "REFRESHING", "VERIFYING"
+
: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.
@@ -2136,7 +2141,8 @@ def list_dr_plans(self, dr_protection_group_id, **kwargs):
"page",
"sort_order",
"sort_by",
- "opc_request_id"
+ "opc_request_id",
+ "lifecycle_sub_state"
]
extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
if extra_kwargs:
@@ -2171,6 +2177,13 @@ def list_dr_plans(self, dr_protection_group_id, **kwargs):
f"Invalid value for `sort_by`, must be one of { sort_by_allowed_values }"
)
+ if 'lifecycle_sub_state' in kwargs:
+ lifecycle_sub_state_allowed_values = ["NEEDS_REFRESH", "NEEDS_VERIFICATION", "REFRESHING", "VERIFYING"]
+ if kwargs['lifecycle_sub_state'] not in lifecycle_sub_state_allowed_values:
+ raise ValueError(
+ f"Invalid value for `lifecycle_sub_state`, must be one of { lifecycle_sub_state_allowed_values }"
+ )
+
query_params = {
"drProtectionGroupId": dr_protection_group_id,
"lifecycleState": kwargs.get("lifecycle_state", missing),
@@ -2180,7 +2193,8 @@ def list_dr_plans(self, dr_protection_group_id, **kwargs):
"limit": kwargs.get("limit", missing),
"page": kwargs.get("page", missing),
"sortOrder": kwargs.get("sort_order", missing),
- "sortBy": kwargs.get("sort_by", missing)
+ "sortBy": kwargs.get("sort_by", missing),
+ "lifecycleSubState": kwargs.get("lifecycle_sub_state", missing)
}
query_params = {k: v for (k, v) in six.iteritems(query_params) if v is not missing and v is not None}
@@ -3052,6 +3066,128 @@ def pause_dr_plan_execution(self, pause_dr_plan_execution_details, dr_plan_execu
api_reference_link=api_reference_link,
required_arguments=required_arguments)
+ def refresh_dr_plan(self, refresh_dr_plan_details, dr_plan_id, **kwargs):
+ """
+ Refresh DR Plan identified by *drPlanId*.
+
+
+ :param oci.disaster_recovery.models.RefreshDrPlanDetails refresh_dr_plan_details: (required)
+ Details for refreshing a DR plan.
+
+ :param str dr_plan_id: (required)
+ The OCID of the DR plan.
+
+ Example: `ocid1.drplan.oc1..uniqueID`
+
+ :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_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 executing that same action again. Retry tokens expire after 24
+ hours, but can be invalidated before then due to conflicting operations. For example, if a resource
+ has been deleted and purged from the system, then a retry of the original creation request
+ might be rejected.
+
+ :param str opc_request_id: (optional)
+ The client request ID for tracing.
+
+ :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 refresh_dr_plan API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['drPlanId']
+ resource_path = "/drPlans/{drPlanId}/actions/refresh"
+ method = "POST"
+ operation_name = "refresh_dr_plan"
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/disaster-recovery/20220125/DrPlan/RefreshDrPlan"
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "if_match",
+ "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"refresh_dr_plan got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "drPlanId": dr_plan_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-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,
+ path_params=path_params,
+ header_params=header_params,
+ body=refresh_dr_plan_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=refresh_dr_plan_details,
+ allow_control_chars=kwargs.get('allow_control_chars'),
+ operation_name=operation_name,
+ api_reference_link=api_reference_link,
+ required_arguments=required_arguments)
+
def resume_dr_plan_execution(self, resume_dr_plan_execution_details, dr_plan_execution_id, **kwargs):
"""
Resume the DR plan execution identified by *drPlanExecutionId*.
@@ -3753,3 +3889,125 @@ def update_dr_protection_group_role(self, update_dr_protection_group_role_detail
operation_name=operation_name,
api_reference_link=api_reference_link,
required_arguments=required_arguments)
+
+ def verify_dr_plan(self, verify_dr_plan_details, dr_plan_id, **kwargs):
+ """
+ Verify DR Plan identified by *drPlanId*.
+
+
+ :param oci.disaster_recovery.models.VerifyDrPlanDetails verify_dr_plan_details: (required)
+ Details for verifying a DR plan.
+
+ :param str dr_plan_id: (required)
+ The OCID of the DR plan.
+
+ Example: `ocid1.drplan.oc1..uniqueID`
+
+ :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_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 executing that same action again. Retry tokens expire after 24
+ hours, but can be invalidated before then due to conflicting operations. For example, if a resource
+ has been deleted and purged from the system, then a retry of the original creation request
+ might be rejected.
+
+ :param str opc_request_id: (optional)
+ The client request ID for tracing.
+
+ :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 verify_dr_plan API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['drPlanId']
+ resource_path = "/drPlans/{drPlanId}/actions/verify"
+ method = "POST"
+ operation_name = "verify_dr_plan"
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/disaster-recovery/20220125/DrPlan/VerifyDrPlan"
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "if_match",
+ "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"verify_dr_plan got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "drPlanId": dr_plan_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-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,
+ path_params=path_params,
+ header_params=header_params,
+ body=verify_dr_plan_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=verify_dr_plan_details,
+ 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/disaster_recovery/disaster_recovery_client_composite_operations.py b/src/oci/disaster_recovery/disaster_recovery_client_composite_operations.py
index db229f43c7..7bb465266e 100644
--- a/src/oci/disaster_recovery/disaster_recovery_client_composite_operations.py
+++ b/src/oci/disaster_recovery/disaster_recovery_client_composite_operations.py
@@ -565,6 +565,50 @@ def pause_dr_plan_execution_and_wait_for_state(self, pause_dr_plan_execution_det
except Exception as e:
raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e)
+ def refresh_dr_plan_and_wait_for_state(self, refresh_dr_plan_details, dr_plan_id, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}):
+ """
+ Calls :py:func:`~oci.disaster_recovery.DisasterRecoveryClient.refresh_dr_plan` and waits for the :py:class:`~oci.disaster_recovery.models.WorkRequest`
+ to enter the given state(s).
+
+ :param oci.disaster_recovery.models.RefreshDrPlanDetails refresh_dr_plan_details: (required)
+ Details for refreshing a DR plan.
+
+ :param str dr_plan_id: (required)
+ The OCID of the DR plan.
+
+ Example: `ocid1.drplan.oc1..uniqueID`
+
+ :param list[str] wait_for_states:
+ An array of states to wait on. These should be valid values for :py:attr:`~oci.disaster_recovery.models.WorkRequest.status`
+
+ :param dict operation_kwargs:
+ A dictionary of keyword arguments to pass to :py:func:`~oci.disaster_recovery.DisasterRecoveryClient.refresh_dr_plan`
+
+ :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.refresh_dr_plan(refresh_dr_plan_details, dr_plan_id, **operation_kwargs)
+ if not wait_for_states:
+ return operation_result
+ lowered_wait_for_states = [w.lower() for w in wait_for_states]
+ if 'opc-work-request-id' not in operation_result.headers:
+ return operation_result
+ wait_for_resource_id = operation_result.headers['opc-work-request-id']
+
+ try:
+ waiter_result = oci.wait_until(
+ self.client,
+ self.client.get_work_request(wait_for_resource_id),
+ evaluate_response=lambda r: getattr(r.data, 'status') and getattr(r.data, 'status').lower() in lowered_wait_for_states,
+ **waiter_kwargs
+ )
+ result_to_return = waiter_result
+
+ return result_to_return
+ except Exception as e:
+ raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e)
+
def resume_dr_plan_execution_and_wait_for_state(self, resume_dr_plan_execution_details, dr_plan_execution_id, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}):
"""
Calls :py:func:`~oci.disaster_recovery.DisasterRecoveryClient.resume_dr_plan_execution` and waits for the :py:class:`~oci.disaster_recovery.models.WorkRequest`
@@ -828,3 +872,47 @@ def update_dr_protection_group_role_and_wait_for_state(self, update_dr_protectio
return result_to_return
except Exception as e:
raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e)
+
+ def verify_dr_plan_and_wait_for_state(self, verify_dr_plan_details, dr_plan_id, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}):
+ """
+ Calls :py:func:`~oci.disaster_recovery.DisasterRecoveryClient.verify_dr_plan` and waits for the :py:class:`~oci.disaster_recovery.models.WorkRequest`
+ to enter the given state(s).
+
+ :param oci.disaster_recovery.models.VerifyDrPlanDetails verify_dr_plan_details: (required)
+ Details for verifying a DR plan.
+
+ :param str dr_plan_id: (required)
+ The OCID of the DR plan.
+
+ Example: `ocid1.drplan.oc1..uniqueID`
+
+ :param list[str] wait_for_states:
+ An array of states to wait on. These should be valid values for :py:attr:`~oci.disaster_recovery.models.WorkRequest.status`
+
+ :param dict operation_kwargs:
+ A dictionary of keyword arguments to pass to :py:func:`~oci.disaster_recovery.DisasterRecoveryClient.verify_dr_plan`
+
+ :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.verify_dr_plan(verify_dr_plan_details, dr_plan_id, **operation_kwargs)
+ if not wait_for_states:
+ return operation_result
+ lowered_wait_for_states = [w.lower() for w in wait_for_states]
+ if 'opc-work-request-id' not in operation_result.headers:
+ return operation_result
+ wait_for_resource_id = operation_result.headers['opc-work-request-id']
+
+ try:
+ waiter_result = oci.wait_until(
+ self.client,
+ self.client.get_work_request(wait_for_resource_id),
+ evaluate_response=lambda r: getattr(r.data, 'status') and getattr(r.data, 'status').lower() in lowered_wait_for_states,
+ **waiter_kwargs
+ )
+ result_to_return = waiter_result
+
+ return result_to_return
+ except Exception as e:
+ raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e)
diff --git a/src/oci/disaster_recovery/models/__init__.py b/src/oci/disaster_recovery/models/__init__.py
index ab1f45c94d..9fa3ab329f 100644
--- a/src/oci/disaster_recovery/models/__init__.py
+++ b/src/oci/disaster_recovery/models/__init__.py
@@ -92,6 +92,8 @@
from .object_storage_script_location import ObjectStorageScriptLocation
from .object_store_script_precheck_step import ObjectStoreScriptPrecheckStep
from .pause_dr_plan_execution_details import PauseDrPlanExecutionDetails
+from .refresh_dr_plan_default_details import RefreshDrPlanDefaultDetails
+from .refresh_dr_plan_details import RefreshDrPlanDetails
from .resume_dr_plan_execution_details import ResumeDrPlanExecutionDetails
from .retry_dr_plan_execution_details import RetryDrPlanExecutionDetails
from .run_local_script_user_defined_step import RunLocalScriptUserDefinedStep
@@ -142,6 +144,8 @@
from .update_object_store_script_precheck_step_details import UpdateObjectStoreScriptPrecheckStepDetails
from .update_run_local_script_user_defined_step_details import UpdateRunLocalScriptUserDefinedStepDetails
from .update_run_object_store_script_user_defined_step_details import UpdateRunObjectStoreScriptUserDefinedStepDetails
+from .verify_dr_plan_default_details import VerifyDrPlanDefaultDetails
+from .verify_dr_plan_details import VerifyDrPlanDetails
from .work_request import WorkRequest
from .work_request_error import WorkRequestError
from .work_request_error_collection import WorkRequestErrorCollection
@@ -239,6 +243,8 @@
"ObjectStorageScriptLocation": ObjectStorageScriptLocation,
"ObjectStoreScriptPrecheckStep": ObjectStoreScriptPrecheckStep,
"PauseDrPlanExecutionDetails": PauseDrPlanExecutionDetails,
+ "RefreshDrPlanDefaultDetails": RefreshDrPlanDefaultDetails,
+ "RefreshDrPlanDetails": RefreshDrPlanDetails,
"ResumeDrPlanExecutionDetails": ResumeDrPlanExecutionDetails,
"RetryDrPlanExecutionDetails": RetryDrPlanExecutionDetails,
"RunLocalScriptUserDefinedStep": RunLocalScriptUserDefinedStep,
@@ -289,6 +295,8 @@
"UpdateObjectStoreScriptPrecheckStepDetails": UpdateObjectStoreScriptPrecheckStepDetails,
"UpdateRunLocalScriptUserDefinedStepDetails": UpdateRunLocalScriptUserDefinedStepDetails,
"UpdateRunObjectStoreScriptUserDefinedStepDetails": UpdateRunObjectStoreScriptUserDefinedStepDetails,
+ "VerifyDrPlanDefaultDetails": VerifyDrPlanDefaultDetails,
+ "VerifyDrPlanDetails": VerifyDrPlanDetails,
"WorkRequest": WorkRequest,
"WorkRequestError": WorkRequestError,
"WorkRequestErrorCollection": WorkRequestErrorCollection,
diff --git a/src/oci/disaster_recovery/models/create_dr_plan_details.py b/src/oci/disaster_recovery/models/create_dr_plan_details.py
index a3a74c249a..3468f90abb 100644
--- a/src/oci/disaster_recovery/models/create_dr_plan_details.py
+++ b/src/oci/disaster_recovery/models/create_dr_plan_details.py
@@ -49,6 +49,10 @@ def __init__(self, **kwargs):
The value to assign to the dr_protection_group_id property of this CreateDrPlanDetails.
:type dr_protection_group_id: str
+ :param source_plan_id:
+ The value to assign to the source_plan_id property of this CreateDrPlanDetails.
+ :type source_plan_id: str
+
:param freeform_tags:
The value to assign to the freeform_tags property of this CreateDrPlanDetails.
:type freeform_tags: dict(str, str)
@@ -62,6 +66,7 @@ def __init__(self, **kwargs):
'display_name': 'str',
'type': 'str',
'dr_protection_group_id': 'str',
+ 'source_plan_id': 'str',
'freeform_tags': 'dict(str, str)',
'defined_tags': 'dict(str, dict(str, object))'
}
@@ -70,6 +75,7 @@ def __init__(self, **kwargs):
'display_name': 'displayName',
'type': 'type',
'dr_protection_group_id': 'drProtectionGroupId',
+ 'source_plan_id': 'sourcePlanId',
'freeform_tags': 'freeformTags',
'defined_tags': 'definedTags'
}
@@ -77,6 +83,7 @@ def __init__(self, **kwargs):
self._display_name = None
self._type = None
self._dr_protection_group_id = None
+ self._source_plan_id = None
self._freeform_tags = None
self._defined_tags = None
@@ -167,6 +174,34 @@ def dr_protection_group_id(self, dr_protection_group_id):
"""
self._dr_protection_group_id = dr_protection_group_id
+ @property
+ def source_plan_id(self):
+ """
+ Gets the source_plan_id of this CreateDrPlanDetails.
+ The OCID of the source DR plan that should be cloned.
+
+ Example: `ocid1.drplan.oc1..uniqueID`
+
+
+ :return: The source_plan_id of this CreateDrPlanDetails.
+ :rtype: str
+ """
+ return self._source_plan_id
+
+ @source_plan_id.setter
+ def source_plan_id(self, source_plan_id):
+ """
+ Sets the source_plan_id of this CreateDrPlanDetails.
+ The OCID of the source DR plan that should be cloned.
+
+ Example: `ocid1.drplan.oc1..uniqueID`
+
+
+ :param source_plan_id: The source_plan_id of this CreateDrPlanDetails.
+ :type: str
+ """
+ self._source_plan_id = source_plan_id
+
@property
def freeform_tags(self):
"""
diff --git a/src/oci/disaster_recovery/models/dr_plan.py b/src/oci/disaster_recovery/models/dr_plan.py
index 3abbd41047..4a2fb774f8 100644
--- a/src/oci/disaster_recovery/models/dr_plan.py
+++ b/src/oci/disaster_recovery/models/dr_plan.py
@@ -63,6 +63,22 @@ class DrPlan(object):
#: This constant has a value of "NEEDS_ATTENTION"
LIFECYCLE_STATE_NEEDS_ATTENTION = "NEEDS_ATTENTION"
+ #: A constant which can be used with the lifecycle_sub_state property of a DrPlan.
+ #: This constant has a value of "NEEDS_REFRESH"
+ LIFECYCLE_SUB_STATE_NEEDS_REFRESH = "NEEDS_REFRESH"
+
+ #: A constant which can be used with the lifecycle_sub_state property of a DrPlan.
+ #: This constant has a value of "NEEDS_VERIFICATION"
+ LIFECYCLE_SUB_STATE_NEEDS_VERIFICATION = "NEEDS_VERIFICATION"
+
+ #: A constant which can be used with the lifecycle_sub_state property of a DrPlan.
+ #: This constant has a value of "REFRESHING"
+ LIFECYCLE_SUB_STATE_REFRESHING = "REFRESHING"
+
+ #: A constant which can be used with the lifecycle_sub_state property of a DrPlan.
+ #: This constant has a value of "VERIFYING"
+ LIFECYCLE_SUB_STATE_VERIFYING = "VERIFYING"
+
def __init__(self, **kwargs):
"""
Initializes a new DrPlan object with values from keyword arguments.
@@ -106,6 +122,10 @@ def __init__(self, **kwargs):
The value to assign to the peer_region property of this DrPlan.
:type peer_region: str
+ :param source_plan_id:
+ The value to assign to the source_plan_id property of this DrPlan.
+ :type source_plan_id: str
+
:param plan_groups:
The value to assign to the plan_groups property of this DrPlan.
:type plan_groups: list[oci.disaster_recovery.models.DrPlanGroup]
@@ -116,6 +136,12 @@ def __init__(self, **kwargs):
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type lifecycle_state: str
+ :param lifecycle_sub_state:
+ The value to assign to the lifecycle_sub_state property of this DrPlan.
+ Allowed values for this property are: "NEEDS_REFRESH", "NEEDS_VERIFICATION", "REFRESHING", "VERIFYING", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type lifecycle_sub_state: str
+
:param life_cycle_details:
The value to assign to the life_cycle_details property of this DrPlan.
:type life_cycle_details: str
@@ -143,8 +169,10 @@ def __init__(self, **kwargs):
'dr_protection_group_id': 'str',
'peer_dr_protection_group_id': 'str',
'peer_region': 'str',
+ 'source_plan_id': 'str',
'plan_groups': 'list[DrPlanGroup]',
'lifecycle_state': 'str',
+ 'lifecycle_sub_state': 'str',
'life_cycle_details': 'str',
'freeform_tags': 'dict(str, str)',
'defined_tags': 'dict(str, dict(str, object))',
@@ -161,8 +189,10 @@ def __init__(self, **kwargs):
'dr_protection_group_id': 'drProtectionGroupId',
'peer_dr_protection_group_id': 'peerDrProtectionGroupId',
'peer_region': 'peerRegion',
+ 'source_plan_id': 'sourcePlanId',
'plan_groups': 'planGroups',
'lifecycle_state': 'lifecycleState',
+ 'lifecycle_sub_state': 'lifecycleSubState',
'life_cycle_details': 'lifeCycleDetails',
'freeform_tags': 'freeformTags',
'defined_tags': 'definedTags',
@@ -178,8 +208,10 @@ def __init__(self, **kwargs):
self._dr_protection_group_id = None
self._peer_dr_protection_group_id = None
self._peer_region = None
+ self._source_plan_id = None
self._plan_groups = None
self._lifecycle_state = None
+ self._lifecycle_sub_state = None
self._life_cycle_details = None
self._freeform_tags = None
self._defined_tags = None
@@ -443,6 +475,36 @@ def peer_region(self, peer_region):
"""
self._peer_region = peer_region
+ @property
+ def source_plan_id(self):
+ """
+ Gets the source_plan_id of this DrPlan.
+ If this is a cloned DR plan, the OCID of the source DR plan that was used to clone this DR plan.
+ If this DR plan was not cloned, then the value for this will be `null`.
+
+ Example: `ocid1.drplan.oc1..uniqueID`
+
+
+ :return: The source_plan_id of this DrPlan.
+ :rtype: str
+ """
+ return self._source_plan_id
+
+ @source_plan_id.setter
+ def source_plan_id(self, source_plan_id):
+ """
+ Sets the source_plan_id of this DrPlan.
+ If this is a cloned DR plan, the OCID of the source DR plan that was used to clone this DR plan.
+ If this DR plan was not cloned, then the value for this will be `null`.
+
+ Example: `ocid1.drplan.oc1..uniqueID`
+
+
+ :param source_plan_id: The source_plan_id of this DrPlan.
+ :type: str
+ """
+ self._source_plan_id = source_plan_id
+
@property
def plan_groups(self):
"""
@@ -497,6 +559,36 @@ def lifecycle_state(self, lifecycle_state):
lifecycle_state = 'UNKNOWN_ENUM_VALUE'
self._lifecycle_state = lifecycle_state
+ @property
+ def lifecycle_sub_state(self):
+ """
+ Gets the lifecycle_sub_state of this DrPlan.
+ The current state of the DR plan.
+
+ Allowed values for this property are: "NEEDS_REFRESH", "NEEDS_VERIFICATION", "REFRESHING", "VERIFYING", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The lifecycle_sub_state of this DrPlan.
+ :rtype: str
+ """
+ return self._lifecycle_sub_state
+
+ @lifecycle_sub_state.setter
+ def lifecycle_sub_state(self, lifecycle_sub_state):
+ """
+ Sets the lifecycle_sub_state of this DrPlan.
+ The current state of the DR plan.
+
+
+ :param lifecycle_sub_state: The lifecycle_sub_state of this DrPlan.
+ :type: str
+ """
+ allowed_values = ["NEEDS_REFRESH", "NEEDS_VERIFICATION", "REFRESHING", "VERIFYING"]
+ if not value_allowed_none_or_none_sentinel(lifecycle_sub_state, allowed_values):
+ lifecycle_sub_state = 'UNKNOWN_ENUM_VALUE'
+ self._lifecycle_sub_state = lifecycle_sub_state
+
@property
def life_cycle_details(self):
"""
diff --git a/src/oci/disaster_recovery/models/dr_plan_group.py b/src/oci/disaster_recovery/models/dr_plan_group.py
index d676fac520..fdc18bb99e 100644
--- a/src/oci/disaster_recovery/models/dr_plan_group.py
+++ b/src/oci/disaster_recovery/models/dr_plan_group.py
@@ -31,6 +31,18 @@ class DrPlanGroup(object):
#: This constant has a value of "USER_DEFINED_PAUSE"
TYPE_USER_DEFINED_PAUSE = "USER_DEFINED_PAUSE"
+ #: A constant which can be used with the refresh_status property of a DrPlanGroup.
+ #: This constant has a value of "GROUP_ADDED"
+ REFRESH_STATUS_GROUP_ADDED = "GROUP_ADDED"
+
+ #: A constant which can be used with the refresh_status property of a DrPlanGroup.
+ #: This constant has a value of "GROUP_DELETED"
+ REFRESH_STATUS_GROUP_DELETED = "GROUP_DELETED"
+
+ #: A constant which can be used with the refresh_status property of a DrPlanGroup.
+ #: This constant has a value of "GROUP_MODIFIED"
+ REFRESH_STATUS_GROUP_MODIFIED = "GROUP_MODIFIED"
+
def __init__(self, **kwargs):
"""
Initializes a new DrPlanGroup object with values from keyword arguments.
@@ -46,6 +58,12 @@ def __init__(self, **kwargs):
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type type: str
+ :param refresh_status:
+ The value to assign to the refresh_status property of this DrPlanGroup.
+ Allowed values for this property are: "GROUP_ADDED", "GROUP_DELETED", "GROUP_MODIFIED", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type refresh_status: str
+
:param display_name:
The value to assign to the display_name property of this DrPlanGroup.
:type display_name: str
@@ -62,6 +80,7 @@ def __init__(self, **kwargs):
self.swagger_types = {
'id': 'str',
'type': 'str',
+ 'refresh_status': 'str',
'display_name': 'str',
'is_pause_enabled': 'bool',
'steps': 'list[DrPlanStep]'
@@ -70,6 +89,7 @@ def __init__(self, **kwargs):
self.attribute_map = {
'id': 'id',
'type': 'type',
+ 'refresh_status': 'refreshStatus',
'display_name': 'displayName',
'is_pause_enabled': 'isPauseEnabled',
'steps': 'steps'
@@ -77,6 +97,7 @@ def __init__(self, **kwargs):
self._id = None
self._type = None
+ self._refresh_status = None
self._display_name = None
self._is_pause_enabled = None
self._steps = None
@@ -143,6 +164,40 @@ def type(self, type):
type = 'UNKNOWN_ENUM_VALUE'
self._type = type
+ @property
+ def refresh_status(self):
+ """
+ Gets the refresh_status of this DrPlanGroup.
+ The DR plan group refresh status.
+
+ Example: `GROUP_MODIFIED`
+
+ Allowed values for this property are: "GROUP_ADDED", "GROUP_DELETED", "GROUP_MODIFIED", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The refresh_status of this DrPlanGroup.
+ :rtype: str
+ """
+ return self._refresh_status
+
+ @refresh_status.setter
+ def refresh_status(self, refresh_status):
+ """
+ Sets the refresh_status of this DrPlanGroup.
+ The DR plan group refresh status.
+
+ Example: `GROUP_MODIFIED`
+
+
+ :param refresh_status: The refresh_status of this DrPlanGroup.
+ :type: str
+ """
+ allowed_values = ["GROUP_ADDED", "GROUP_DELETED", "GROUP_MODIFIED"]
+ if not value_allowed_none_or_none_sentinel(refresh_status, allowed_values):
+ refresh_status = 'UNKNOWN_ENUM_VALUE'
+ self._refresh_status = refresh_status
+
@property
def display_name(self):
"""
diff --git a/src/oci/disaster_recovery/models/dr_plan_step.py b/src/oci/disaster_recovery/models/dr_plan_step.py
index f1244cd15c..84db2e5b0f 100644
--- a/src/oci/disaster_recovery/models/dr_plan_step.py
+++ b/src/oci/disaster_recovery/models/dr_plan_step.py
@@ -387,6 +387,14 @@ class DrPlanStep(object):
#: This constant has a value of "OBJECT_STORAGE_BUCKET_FAILOVER_SETUP_REVERSE_REPLICATION_STANDBY"
TYPE_OBJECT_STORAGE_BUCKET_FAILOVER_SETUP_REVERSE_REPLICATION_STANDBY = "OBJECT_STORAGE_BUCKET_FAILOVER_SETUP_REVERSE_REPLICATION_STANDBY"
+ #: A constant which can be used with the refresh_status property of a DrPlanStep.
+ #: This constant has a value of "STEP_ADDED"
+ REFRESH_STATUS_STEP_ADDED = "STEP_ADDED"
+
+ #: A constant which can be used with the refresh_status property of a DrPlanStep.
+ #: This constant has a value of "STEP_DELETED"
+ REFRESH_STATUS_STEP_DELETED = "STEP_DELETED"
+
#: A constant which can be used with the error_mode property of a DrPlanStep.
#: This constant has a value of "STOP_ON_ERROR"
ERROR_MODE_STOP_ON_ERROR = "STOP_ON_ERROR"
@@ -418,6 +426,12 @@ def __init__(self, **kwargs):
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type type: str
+ :param refresh_status:
+ The value to assign to the refresh_status property of this DrPlanStep.
+ Allowed values for this property are: "STEP_ADDED", "STEP_DELETED", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type refresh_status: str
+
:param display_name:
The value to assign to the display_name property of this DrPlanStep.
:type display_name: str
@@ -446,6 +460,7 @@ def __init__(self, **kwargs):
'group_id': 'str',
'member_id': 'str',
'type': 'str',
+ 'refresh_status': 'str',
'display_name': 'str',
'error_mode': 'str',
'timeout': 'int',
@@ -458,6 +473,7 @@ def __init__(self, **kwargs):
'group_id': 'groupId',
'member_id': 'memberId',
'type': 'type',
+ 'refresh_status': 'refreshStatus',
'display_name': 'displayName',
'error_mode': 'errorMode',
'timeout': 'timeout',
@@ -469,6 +485,7 @@ def __init__(self, **kwargs):
self._group_id = None
self._member_id = None
self._type = None
+ self._refresh_status = None
self._display_name = None
self._error_mode = None
self._timeout = None
@@ -589,6 +606,40 @@ def type(self, type):
type = 'UNKNOWN_ENUM_VALUE'
self._type = type
+ @property
+ def refresh_status(self):
+ """
+ Gets the refresh_status of this DrPlanStep.
+ The DR plan step refresh status.
+
+ Example: `STEP_ADDED`
+
+ Allowed values for this property are: "STEP_ADDED", "STEP_DELETED", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The refresh_status of this DrPlanStep.
+ :rtype: str
+ """
+ return self._refresh_status
+
+ @refresh_status.setter
+ def refresh_status(self, refresh_status):
+ """
+ Sets the refresh_status of this DrPlanStep.
+ The DR plan step refresh status.
+
+ Example: `STEP_ADDED`
+
+
+ :param refresh_status: The refresh_status of this DrPlanStep.
+ :type: str
+ """
+ allowed_values = ["STEP_ADDED", "STEP_DELETED"]
+ if not value_allowed_none_or_none_sentinel(refresh_status, allowed_values):
+ refresh_status = 'UNKNOWN_ENUM_VALUE'
+ self._refresh_status = refresh_status
+
@property
def display_name(self):
"""
diff --git a/src/oci/disaster_recovery/models/dr_plan_summary.py b/src/oci/disaster_recovery/models/dr_plan_summary.py
index aa6bf44b9c..4e65b13474 100644
--- a/src/oci/disaster_recovery/models/dr_plan_summary.py
+++ b/src/oci/disaster_recovery/models/dr_plan_summary.py
@@ -63,6 +63,22 @@ class DrPlanSummary(object):
#: This constant has a value of "NEEDS_ATTENTION"
LIFECYCLE_STATE_NEEDS_ATTENTION = "NEEDS_ATTENTION"
+ #: A constant which can be used with the lifecycle_sub_state property of a DrPlanSummary.
+ #: This constant has a value of "NEEDS_REFRESH"
+ LIFECYCLE_SUB_STATE_NEEDS_REFRESH = "NEEDS_REFRESH"
+
+ #: A constant which can be used with the lifecycle_sub_state property of a DrPlanSummary.
+ #: This constant has a value of "NEEDS_VERIFICATION"
+ LIFECYCLE_SUB_STATE_NEEDS_VERIFICATION = "NEEDS_VERIFICATION"
+
+ #: A constant which can be used with the lifecycle_sub_state property of a DrPlanSummary.
+ #: This constant has a value of "REFRESHING"
+ LIFECYCLE_SUB_STATE_REFRESHING = "REFRESHING"
+
+ #: A constant which can be used with the lifecycle_sub_state property of a DrPlanSummary.
+ #: This constant has a value of "VERIFYING"
+ LIFECYCLE_SUB_STATE_VERIFYING = "VERIFYING"
+
def __init__(self, **kwargs):
"""
Initializes a new DrPlanSummary object with values from keyword arguments.
@@ -112,6 +128,12 @@ def __init__(self, **kwargs):
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type lifecycle_state: str
+ :param lifecycle_sub_state:
+ The value to assign to the lifecycle_sub_state property of this DrPlanSummary.
+ Allowed values for this property are: "NEEDS_REFRESH", "NEEDS_VERIFICATION", "REFRESHING", "VERIFYING", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type lifecycle_sub_state: str
+
:param life_cycle_details:
The value to assign to the life_cycle_details property of this DrPlanSummary.
:type life_cycle_details: str
@@ -140,6 +162,7 @@ def __init__(self, **kwargs):
'time_created': 'datetime',
'time_updated': 'datetime',
'lifecycle_state': 'str',
+ 'lifecycle_sub_state': 'str',
'life_cycle_details': 'str',
'freeform_tags': 'dict(str, str)',
'defined_tags': 'dict(str, dict(str, object))',
@@ -157,6 +180,7 @@ def __init__(self, **kwargs):
'time_created': 'timeCreated',
'time_updated': 'timeUpdated',
'lifecycle_state': 'lifecycleState',
+ 'lifecycle_sub_state': 'lifecycleSubState',
'life_cycle_details': 'lifeCycleDetails',
'freeform_tags': 'freeformTags',
'defined_tags': 'definedTags',
@@ -173,6 +197,7 @@ def __init__(self, **kwargs):
self._time_created = None
self._time_updated = None
self._lifecycle_state = None
+ self._lifecycle_sub_state = None
self._life_cycle_details = None
self._freeform_tags = None
self._defined_tags = None
@@ -474,6 +499,40 @@ def lifecycle_state(self, lifecycle_state):
lifecycle_state = 'UNKNOWN_ENUM_VALUE'
self._lifecycle_state = lifecycle_state
+ @property
+ def lifecycle_sub_state(self):
+ """
+ Gets the lifecycle_sub_state of this DrPlanSummary.
+ The current sub state of the DR plan.
+
+ Example: `NEEDS_REFRESH`
+
+ Allowed values for this property are: "NEEDS_REFRESH", "NEEDS_VERIFICATION", "REFRESHING", "VERIFYING", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The lifecycle_sub_state of this DrPlanSummary.
+ :rtype: str
+ """
+ return self._lifecycle_sub_state
+
+ @lifecycle_sub_state.setter
+ def lifecycle_sub_state(self, lifecycle_sub_state):
+ """
+ Sets the lifecycle_sub_state of this DrPlanSummary.
+ The current sub state of the DR plan.
+
+ Example: `NEEDS_REFRESH`
+
+
+ :param lifecycle_sub_state: The lifecycle_sub_state of this DrPlanSummary.
+ :type: str
+ """
+ allowed_values = ["NEEDS_REFRESH", "NEEDS_VERIFICATION", "REFRESHING", "VERIFYING"]
+ if not value_allowed_none_or_none_sentinel(lifecycle_sub_state, allowed_values):
+ lifecycle_sub_state = 'UNKNOWN_ENUM_VALUE'
+ self._lifecycle_sub_state = lifecycle_sub_state
+
@property
def life_cycle_details(self):
"""
diff --git a/src/oci/disaster_recovery/models/refresh_dr_plan_default_details.py b/src/oci/disaster_recovery/models/refresh_dr_plan_default_details.py
new file mode 100644
index 0000000000..3b1d0f844e
--- /dev/null
+++ b/src/oci/disaster_recovery/models/refresh_dr_plan_default_details.py
@@ -0,0 +1,51 @@
+# 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: 20220125
+
+from .refresh_dr_plan_details import RefreshDrPlanDetails
+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 RefreshDrPlanDefaultDetails(RefreshDrPlanDetails):
+ """
+ The default type.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new RefreshDrPlanDefaultDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.disaster_recovery.models.RefreshDrPlanDefaultDetails.type` attribute
+ of this class is ``DEFAULT`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param type:
+ The value to assign to the type property of this RefreshDrPlanDefaultDetails.
+ Allowed values for this property are: "DEFAULT"
+ :type type: str
+
+ """
+ self.swagger_types = {
+ 'type': 'str'
+ }
+
+ self.attribute_map = {
+ 'type': 'type'
+ }
+
+ self._type = None
+ self._type = 'DEFAULT'
+
+ 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/disaster_recovery/models/refresh_dr_plan_details.py b/src/oci/disaster_recovery/models/refresh_dr_plan_details.py
new file mode 100644
index 0000000000..34c12efe46
--- /dev/null
+++ b/src/oci/disaster_recovery/models/refresh_dr_plan_details.py
@@ -0,0 +1,101 @@
+# 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: 20220125
+
+
+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 RefreshDrPlanDetails(object):
+ """
+ The details for refreshing a DR plan.
+ """
+
+ #: A constant which can be used with the type property of a RefreshDrPlanDetails.
+ #: This constant has a value of "DEFAULT"
+ TYPE_DEFAULT = "DEFAULT"
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new RefreshDrPlanDetails 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.disaster_recovery.models.RefreshDrPlanDefaultDetails`
+
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param type:
+ The value to assign to the type property of this RefreshDrPlanDetails.
+ Allowed values for this property are: "DEFAULT"
+ :type type: str
+
+ """
+ self.swagger_types = {
+ 'type': 'str'
+ }
+
+ self.attribute_map = {
+ 'type': 'type'
+ }
+
+ self._type = 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['type']
+
+ if type == 'DEFAULT':
+ return 'RefreshDrPlanDefaultDetails'
+ else:
+ return 'RefreshDrPlanDetails'
+
+ @property
+ def type(self):
+ """
+ **[Required]** Gets the type of this RefreshDrPlanDetails.
+ The default type.
+
+ Allowed values for this property are: "DEFAULT"
+
+
+ :return: The type of this RefreshDrPlanDetails.
+ :rtype: str
+ """
+ return self._type
+
+ @type.setter
+ def type(self, type):
+ """
+ Sets the type of this RefreshDrPlanDetails.
+ The default type.
+
+
+ :param type: The type of this RefreshDrPlanDetails.
+ :type: str
+ """
+ allowed_values = ["DEFAULT"]
+ if not value_allowed_none_or_none_sentinel(type, allowed_values):
+ raise ValueError(
+ f"Invalid value for `type`, must be None or one of {allowed_values}"
+ )
+ self._type = type
+
+ 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/disaster_recovery/models/verify_dr_plan_default_details.py b/src/oci/disaster_recovery/models/verify_dr_plan_default_details.py
new file mode 100644
index 0000000000..83631ad587
--- /dev/null
+++ b/src/oci/disaster_recovery/models/verify_dr_plan_default_details.py
@@ -0,0 +1,51 @@
+# 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: 20220125
+
+from .verify_dr_plan_details import VerifyDrPlanDetails
+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 VerifyDrPlanDefaultDetails(VerifyDrPlanDetails):
+ """
+ The default type.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new VerifyDrPlanDefaultDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.disaster_recovery.models.VerifyDrPlanDefaultDetails.type` attribute
+ of this class is ``DEFAULT`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param type:
+ The value to assign to the type property of this VerifyDrPlanDefaultDetails.
+ Allowed values for this property are: "DEFAULT"
+ :type type: str
+
+ """
+ self.swagger_types = {
+ 'type': 'str'
+ }
+
+ self.attribute_map = {
+ 'type': 'type'
+ }
+
+ self._type = None
+ self._type = 'DEFAULT'
+
+ 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/disaster_recovery/models/verify_dr_plan_details.py b/src/oci/disaster_recovery/models/verify_dr_plan_details.py
new file mode 100644
index 0000000000..497a5922d4
--- /dev/null
+++ b/src/oci/disaster_recovery/models/verify_dr_plan_details.py
@@ -0,0 +1,101 @@
+# 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: 20220125
+
+
+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 VerifyDrPlanDetails(object):
+ """
+ The details for verifying a DR plan.
+ """
+
+ #: A constant which can be used with the type property of a VerifyDrPlanDetails.
+ #: This constant has a value of "DEFAULT"
+ TYPE_DEFAULT = "DEFAULT"
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new VerifyDrPlanDetails 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.disaster_recovery.models.VerifyDrPlanDefaultDetails`
+
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param type:
+ The value to assign to the type property of this VerifyDrPlanDetails.
+ Allowed values for this property are: "DEFAULT"
+ :type type: str
+
+ """
+ self.swagger_types = {
+ 'type': 'str'
+ }
+
+ self.attribute_map = {
+ 'type': 'type'
+ }
+
+ self._type = 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['type']
+
+ if type == 'DEFAULT':
+ return 'VerifyDrPlanDefaultDetails'
+ else:
+ return 'VerifyDrPlanDetails'
+
+ @property
+ def type(self):
+ """
+ **[Required]** Gets the type of this VerifyDrPlanDetails.
+ The default type.
+
+ Allowed values for this property are: "DEFAULT"
+
+
+ :return: The type of this VerifyDrPlanDetails.
+ :rtype: str
+ """
+ return self._type
+
+ @type.setter
+ def type(self, type):
+ """
+ Sets the type of this VerifyDrPlanDetails.
+ The default type.
+
+
+ :param type: The type of this VerifyDrPlanDetails.
+ :type: str
+ """
+ allowed_values = ["DEFAULT"]
+ if not value_allowed_none_or_none_sentinel(type, allowed_values):
+ raise ValueError(
+ f"Invalid value for `type`, must be None or one of {allowed_values}"
+ )
+ self._type = type
+
+ 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/disaster_recovery/models/work_request.py b/src/oci/disaster_recovery/models/work_request.py
index f09630f789..0a7afc552c 100644
--- a/src/oci/disaster_recovery/models/work_request.py
+++ b/src/oci/disaster_recovery/models/work_request.py
@@ -55,6 +55,14 @@ class WorkRequest(object):
#: This constant has a value of "DELETE_DR_PLAN"
OPERATION_TYPE_DELETE_DR_PLAN = "DELETE_DR_PLAN"
+ #: A constant which can be used with the operation_type property of a WorkRequest.
+ #: This constant has a value of "REFRESH_DR_PLAN"
+ OPERATION_TYPE_REFRESH_DR_PLAN = "REFRESH_DR_PLAN"
+
+ #: A constant which can be used with the operation_type property of a WorkRequest.
+ #: This constant has a value of "VERIFY_DR_PLAN"
+ OPERATION_TYPE_VERIFY_DR_PLAN = "VERIFY_DR_PLAN"
+
#: A constant which can be used with the operation_type property of a WorkRequest.
#: This constant has a value of "CREATE_DR_PLAN_EXECUTION"
OPERATION_TYPE_CREATE_DR_PLAN_EXECUTION = "CREATE_DR_PLAN_EXECUTION"
@@ -126,7 +134,7 @@ def __init__(self, **kwargs):
:param operation_type:
The value to assign to the operation_type property of this WorkRequest.
- Allowed values for this property are: "CREATE_DR_PROTECTION_GROUP", "UPDATE_DR_PROTECTION_GROUP", "DELETE_DR_PROTECTION_GROUP", "MOVE_DR_PROTECTION_GROUP", "ASSOCIATE_DR_PROTECTION_GROUP", "DISASSOCIATE_DR_PROTECTION_GROUP", "UPDATE_ROLE_DR_PROTECTION_GROUP", "CREATE_DR_PLAN", "UPDATE_DR_PLAN", "DELETE_DR_PLAN", "CREATE_DR_PLAN_EXECUTION", "UPDATE_DR_PLAN_EXECUTION", "DELETE_DR_PLAN_EXECUTION", "RETRY_DR_PLAN_EXECUTION", "IGNORE_DR_PLAN_EXECUTION", "CANCEL_DR_PLAN_EXECUTION", "PAUSE_DR_PLAN_EXECUTION", "RESUME_DR_PLAN_EXECUTION", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "CREATE_DR_PROTECTION_GROUP", "UPDATE_DR_PROTECTION_GROUP", "DELETE_DR_PROTECTION_GROUP", "MOVE_DR_PROTECTION_GROUP", "ASSOCIATE_DR_PROTECTION_GROUP", "DISASSOCIATE_DR_PROTECTION_GROUP", "UPDATE_ROLE_DR_PROTECTION_GROUP", "CREATE_DR_PLAN", "UPDATE_DR_PLAN", "DELETE_DR_PLAN", "REFRESH_DR_PLAN", "VERIFY_DR_PLAN", "CREATE_DR_PLAN_EXECUTION", "UPDATE_DR_PLAN_EXECUTION", "DELETE_DR_PLAN_EXECUTION", "RETRY_DR_PLAN_EXECUTION", "IGNORE_DR_PLAN_EXECUTION", "CANCEL_DR_PLAN_EXECUTION", "PAUSE_DR_PLAN_EXECUTION", "RESUME_DR_PLAN_EXECUTION", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type operation_type: str
@@ -205,7 +213,7 @@ def operation_type(self):
**[Required]** Gets the operation_type of this WorkRequest.
The type of the work request.
- Allowed values for this property are: "CREATE_DR_PROTECTION_GROUP", "UPDATE_DR_PROTECTION_GROUP", "DELETE_DR_PROTECTION_GROUP", "MOVE_DR_PROTECTION_GROUP", "ASSOCIATE_DR_PROTECTION_GROUP", "DISASSOCIATE_DR_PROTECTION_GROUP", "UPDATE_ROLE_DR_PROTECTION_GROUP", "CREATE_DR_PLAN", "UPDATE_DR_PLAN", "DELETE_DR_PLAN", "CREATE_DR_PLAN_EXECUTION", "UPDATE_DR_PLAN_EXECUTION", "DELETE_DR_PLAN_EXECUTION", "RETRY_DR_PLAN_EXECUTION", "IGNORE_DR_PLAN_EXECUTION", "CANCEL_DR_PLAN_EXECUTION", "PAUSE_DR_PLAN_EXECUTION", "RESUME_DR_PLAN_EXECUTION", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "CREATE_DR_PROTECTION_GROUP", "UPDATE_DR_PROTECTION_GROUP", "DELETE_DR_PROTECTION_GROUP", "MOVE_DR_PROTECTION_GROUP", "ASSOCIATE_DR_PROTECTION_GROUP", "DISASSOCIATE_DR_PROTECTION_GROUP", "UPDATE_ROLE_DR_PROTECTION_GROUP", "CREATE_DR_PLAN", "UPDATE_DR_PLAN", "DELETE_DR_PLAN", "REFRESH_DR_PLAN", "VERIFY_DR_PLAN", "CREATE_DR_PLAN_EXECUTION", "UPDATE_DR_PLAN_EXECUTION", "DELETE_DR_PLAN_EXECUTION", "RETRY_DR_PLAN_EXECUTION", "IGNORE_DR_PLAN_EXECUTION", "CANCEL_DR_PLAN_EXECUTION", "PAUSE_DR_PLAN_EXECUTION", "RESUME_DR_PLAN_EXECUTION", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -224,7 +232,7 @@ def operation_type(self, operation_type):
:param operation_type: The operation_type of this WorkRequest.
:type: str
"""
- allowed_values = ["CREATE_DR_PROTECTION_GROUP", "UPDATE_DR_PROTECTION_GROUP", "DELETE_DR_PROTECTION_GROUP", "MOVE_DR_PROTECTION_GROUP", "ASSOCIATE_DR_PROTECTION_GROUP", "DISASSOCIATE_DR_PROTECTION_GROUP", "UPDATE_ROLE_DR_PROTECTION_GROUP", "CREATE_DR_PLAN", "UPDATE_DR_PLAN", "DELETE_DR_PLAN", "CREATE_DR_PLAN_EXECUTION", "UPDATE_DR_PLAN_EXECUTION", "DELETE_DR_PLAN_EXECUTION", "RETRY_DR_PLAN_EXECUTION", "IGNORE_DR_PLAN_EXECUTION", "CANCEL_DR_PLAN_EXECUTION", "PAUSE_DR_PLAN_EXECUTION", "RESUME_DR_PLAN_EXECUTION"]
+ allowed_values = ["CREATE_DR_PROTECTION_GROUP", "UPDATE_DR_PROTECTION_GROUP", "DELETE_DR_PROTECTION_GROUP", "MOVE_DR_PROTECTION_GROUP", "ASSOCIATE_DR_PROTECTION_GROUP", "DISASSOCIATE_DR_PROTECTION_GROUP", "UPDATE_ROLE_DR_PROTECTION_GROUP", "CREATE_DR_PLAN", "UPDATE_DR_PLAN", "DELETE_DR_PLAN", "REFRESH_DR_PLAN", "VERIFY_DR_PLAN", "CREATE_DR_PLAN_EXECUTION", "UPDATE_DR_PLAN_EXECUTION", "DELETE_DR_PLAN_EXECUTION", "RETRY_DR_PLAN_EXECUTION", "IGNORE_DR_PLAN_EXECUTION", "CANCEL_DR_PLAN_EXECUTION", "PAUSE_DR_PLAN_EXECUTION", "RESUME_DR_PLAN_EXECUTION"]
if not value_allowed_none_or_none_sentinel(operation_type, allowed_values):
operation_type = 'UNKNOWN_ENUM_VALUE'
self._operation_type = operation_type
diff --git a/src/oci/disaster_recovery/models/work_request_summary.py b/src/oci/disaster_recovery/models/work_request_summary.py
index a6247d1c49..6177f78b6e 100644
--- a/src/oci/disaster_recovery/models/work_request_summary.py
+++ b/src/oci/disaster_recovery/models/work_request_summary.py
@@ -55,6 +55,14 @@ class WorkRequestSummary(object):
#: This constant has a value of "DELETE_DR_PLAN"
OPERATION_TYPE_DELETE_DR_PLAN = "DELETE_DR_PLAN"
+ #: A constant which can be used with the operation_type property of a WorkRequestSummary.
+ #: This constant has a value of "REFRESH_DR_PLAN"
+ OPERATION_TYPE_REFRESH_DR_PLAN = "REFRESH_DR_PLAN"
+
+ #: A constant which can be used with the operation_type property of a WorkRequestSummary.
+ #: This constant has a value of "VERIFY_DR_PLAN"
+ OPERATION_TYPE_VERIFY_DR_PLAN = "VERIFY_DR_PLAN"
+
#: A constant which can be used with the operation_type property of a WorkRequestSummary.
#: This constant has a value of "CREATE_DR_PLAN_EXECUTION"
OPERATION_TYPE_CREATE_DR_PLAN_EXECUTION = "CREATE_DR_PLAN_EXECUTION"
@@ -126,7 +134,7 @@ def __init__(self, **kwargs):
:param operation_type:
The value to assign to the operation_type property of this WorkRequestSummary.
- Allowed values for this property are: "CREATE_DR_PROTECTION_GROUP", "UPDATE_DR_PROTECTION_GROUP", "DELETE_DR_PROTECTION_GROUP", "MOVE_DR_PROTECTION_GROUP", "ASSOCIATE_DR_PROTECTION_GROUP", "DISASSOCIATE_DR_PROTECTION_GROUP", "UPDATE_ROLE_DR_PROTECTION_GROUP", "CREATE_DR_PLAN", "UPDATE_DR_PLAN", "DELETE_DR_PLAN", "CREATE_DR_PLAN_EXECUTION", "UPDATE_DR_PLAN_EXECUTION", "DELETE_DR_PLAN_EXECUTION", "RETRY_DR_PLAN_EXECUTION", "IGNORE_DR_PLAN_EXECUTION", "CANCEL_DR_PLAN_EXECUTION", "PAUSE_DR_PLAN_EXECUTION", "RESUME_DR_PLAN_EXECUTION", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "CREATE_DR_PROTECTION_GROUP", "UPDATE_DR_PROTECTION_GROUP", "DELETE_DR_PROTECTION_GROUP", "MOVE_DR_PROTECTION_GROUP", "ASSOCIATE_DR_PROTECTION_GROUP", "DISASSOCIATE_DR_PROTECTION_GROUP", "UPDATE_ROLE_DR_PROTECTION_GROUP", "CREATE_DR_PLAN", "UPDATE_DR_PLAN", "DELETE_DR_PLAN", "REFRESH_DR_PLAN", "VERIFY_DR_PLAN", "CREATE_DR_PLAN_EXECUTION", "UPDATE_DR_PLAN_EXECUTION", "DELETE_DR_PLAN_EXECUTION", "RETRY_DR_PLAN_EXECUTION", "IGNORE_DR_PLAN_EXECUTION", "CANCEL_DR_PLAN_EXECUTION", "PAUSE_DR_PLAN_EXECUTION", "RESUME_DR_PLAN_EXECUTION", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type operation_type: str
@@ -205,7 +213,7 @@ def operation_type(self):
**[Required]** Gets the operation_type of this WorkRequestSummary.
The type of the work request.
- Allowed values for this property are: "CREATE_DR_PROTECTION_GROUP", "UPDATE_DR_PROTECTION_GROUP", "DELETE_DR_PROTECTION_GROUP", "MOVE_DR_PROTECTION_GROUP", "ASSOCIATE_DR_PROTECTION_GROUP", "DISASSOCIATE_DR_PROTECTION_GROUP", "UPDATE_ROLE_DR_PROTECTION_GROUP", "CREATE_DR_PLAN", "UPDATE_DR_PLAN", "DELETE_DR_PLAN", "CREATE_DR_PLAN_EXECUTION", "UPDATE_DR_PLAN_EXECUTION", "DELETE_DR_PLAN_EXECUTION", "RETRY_DR_PLAN_EXECUTION", "IGNORE_DR_PLAN_EXECUTION", "CANCEL_DR_PLAN_EXECUTION", "PAUSE_DR_PLAN_EXECUTION", "RESUME_DR_PLAN_EXECUTION", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "CREATE_DR_PROTECTION_GROUP", "UPDATE_DR_PROTECTION_GROUP", "DELETE_DR_PROTECTION_GROUP", "MOVE_DR_PROTECTION_GROUP", "ASSOCIATE_DR_PROTECTION_GROUP", "DISASSOCIATE_DR_PROTECTION_GROUP", "UPDATE_ROLE_DR_PROTECTION_GROUP", "CREATE_DR_PLAN", "UPDATE_DR_PLAN", "DELETE_DR_PLAN", "REFRESH_DR_PLAN", "VERIFY_DR_PLAN", "CREATE_DR_PLAN_EXECUTION", "UPDATE_DR_PLAN_EXECUTION", "DELETE_DR_PLAN_EXECUTION", "RETRY_DR_PLAN_EXECUTION", "IGNORE_DR_PLAN_EXECUTION", "CANCEL_DR_PLAN_EXECUTION", "PAUSE_DR_PLAN_EXECUTION", "RESUME_DR_PLAN_EXECUTION", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -224,7 +232,7 @@ def operation_type(self, operation_type):
:param operation_type: The operation_type of this WorkRequestSummary.
:type: str
"""
- allowed_values = ["CREATE_DR_PROTECTION_GROUP", "UPDATE_DR_PROTECTION_GROUP", "DELETE_DR_PROTECTION_GROUP", "MOVE_DR_PROTECTION_GROUP", "ASSOCIATE_DR_PROTECTION_GROUP", "DISASSOCIATE_DR_PROTECTION_GROUP", "UPDATE_ROLE_DR_PROTECTION_GROUP", "CREATE_DR_PLAN", "UPDATE_DR_PLAN", "DELETE_DR_PLAN", "CREATE_DR_PLAN_EXECUTION", "UPDATE_DR_PLAN_EXECUTION", "DELETE_DR_PLAN_EXECUTION", "RETRY_DR_PLAN_EXECUTION", "IGNORE_DR_PLAN_EXECUTION", "CANCEL_DR_PLAN_EXECUTION", "PAUSE_DR_PLAN_EXECUTION", "RESUME_DR_PLAN_EXECUTION"]
+ allowed_values = ["CREATE_DR_PROTECTION_GROUP", "UPDATE_DR_PROTECTION_GROUP", "DELETE_DR_PROTECTION_GROUP", "MOVE_DR_PROTECTION_GROUP", "ASSOCIATE_DR_PROTECTION_GROUP", "DISASSOCIATE_DR_PROTECTION_GROUP", "UPDATE_ROLE_DR_PROTECTION_GROUP", "CREATE_DR_PLAN", "UPDATE_DR_PLAN", "DELETE_DR_PLAN", "REFRESH_DR_PLAN", "VERIFY_DR_PLAN", "CREATE_DR_PLAN_EXECUTION", "UPDATE_DR_PLAN_EXECUTION", "DELETE_DR_PLAN_EXECUTION", "RETRY_DR_PLAN_EXECUTION", "IGNORE_DR_PLAN_EXECUTION", "CANCEL_DR_PLAN_EXECUTION", "PAUSE_DR_PLAN_EXECUTION", "RESUME_DR_PLAN_EXECUTION"]
if not value_allowed_none_or_none_sentinel(operation_type, allowed_values):
operation_type = 'UNKNOWN_ENUM_VALUE'
self._operation_type = operation_type
diff --git a/src/oci/fleet_software_update/fleet_software_update_client.py b/src/oci/fleet_software_update/fleet_software_update_client.py
index 620fdb9b42..684bc8b714 100644
--- a/src/oci/fleet_software_update/fleet_software_update_client.py
+++ b/src/oci/fleet_software_update/fleet_software_update_client.py
@@ -3005,7 +3005,7 @@ def list_fsu_actions(self, compartment_id, **kwargs):
:param str type: (optional)
A filter to return only resources whose type matches the given type.
- Allowed values are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:param int limit: (optional)
The maximum number of items to return.
@@ -3079,7 +3079,7 @@ def list_fsu_actions(self, compartment_id, **kwargs):
)
if 'type' in kwargs:
- type_allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"]
+ type_allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"]
if kwargs['type'] not in type_allowed_values:
raise ValueError(
f"Invalid value for `type`, must be one of { type_allowed_values }"
diff --git a/src/oci/fleet_software_update/models/__init__.py b/src/oci/fleet_software_update/models/__init__.py
index 598999d09c..eda78e6ebb 100644
--- a/src/oci/fleet_software_update/models/__init__.py
+++ b/src/oci/fleet_software_update/models/__init__.py
@@ -37,6 +37,7 @@
from .create_patch_fsu_cycle import CreatePatchFsuCycle
from .create_precheck_action_details import CreatePrecheckActionDetails
from .create_rollback_action_details import CreateRollbackActionDetails
+from .create_rollback_cycle_apply_action_details import CreateRollbackCycleApplyActionDetails
from .create_schedule_details import CreateScheduleDetails
from .create_sequential_batching_strategy_details import CreateSequentialBatchingStrategyDetails
from .create_service_availability_factor_batching_strategy_details import CreateServiceAvailabilityFactorBatchingStrategyDetails
@@ -117,6 +118,10 @@
from .remove_fsu_collection_targets_details import RemoveFsuCollectionTargetsDetails
from .rollback_action import RollbackAction
from .rollback_action_summary import RollbackActionSummary
+from .rollback_cycle_action import RollbackCycleAction
+from .rollback_cycle_action_summary import RollbackCycleActionSummary
+from .rollback_cycle_fsu_job import RollbackCycleFsuJob
+from .rollback_cycle_fsu_job_summary import RollbackCycleFsuJobSummary
from .rollback_details import RollbackDetails
from .rollback_fsu_job import RollbackFsuJob
from .rollback_fsu_job_summary import RollbackFsuJobSummary
@@ -147,6 +152,7 @@
from .update_patch_fsu_cycle import UpdatePatchFsuCycle
from .update_precheck_action_details import UpdatePrecheckActionDetails
from .update_rollback_action_details import UpdateRollbackActionDetails
+from .update_rollback_cycle_action_details import UpdateRollbackCycleActionDetails
from .update_schedule_details import UpdateScheduleDetails
from .update_sequential_batching_strategy_details import UpdateSequentialBatchingStrategyDetails
from .update_service_availability_factor_batching_strategy_details import UpdateServiceAvailabilityFactorBatchingStrategyDetails
@@ -196,6 +202,7 @@
"CreatePatchFsuCycle": CreatePatchFsuCycle,
"CreatePrecheckActionDetails": CreatePrecheckActionDetails,
"CreateRollbackActionDetails": CreateRollbackActionDetails,
+ "CreateRollbackCycleApplyActionDetails": CreateRollbackCycleApplyActionDetails,
"CreateScheduleDetails": CreateScheduleDetails,
"CreateSequentialBatchingStrategyDetails": CreateSequentialBatchingStrategyDetails,
"CreateServiceAvailabilityFactorBatchingStrategyDetails": CreateServiceAvailabilityFactorBatchingStrategyDetails,
@@ -276,6 +283,10 @@
"RemoveFsuCollectionTargetsDetails": RemoveFsuCollectionTargetsDetails,
"RollbackAction": RollbackAction,
"RollbackActionSummary": RollbackActionSummary,
+ "RollbackCycleAction": RollbackCycleAction,
+ "RollbackCycleActionSummary": RollbackCycleActionSummary,
+ "RollbackCycleFsuJob": RollbackCycleFsuJob,
+ "RollbackCycleFsuJobSummary": RollbackCycleFsuJobSummary,
"RollbackDetails": RollbackDetails,
"RollbackFsuJob": RollbackFsuJob,
"RollbackFsuJobSummary": RollbackFsuJobSummary,
@@ -306,6 +317,7 @@
"UpdatePatchFsuCycle": UpdatePatchFsuCycle,
"UpdatePrecheckActionDetails": UpdatePrecheckActionDetails,
"UpdateRollbackActionDetails": UpdateRollbackActionDetails,
+ "UpdateRollbackCycleActionDetails": UpdateRollbackCycleActionDetails,
"UpdateScheduleDetails": UpdateScheduleDetails,
"UpdateSequentialBatchingStrategyDetails": UpdateSequentialBatchingStrategyDetails,
"UpdateServiceAvailabilityFactorBatchingStrategyDetails": UpdateServiceAvailabilityFactorBatchingStrategyDetails,
diff --git a/src/oci/fleet_software_update/models/apply_action.py b/src/oci/fleet_software_update/models/apply_action.py
index 70a4456270..36ab76e2b4 100644
--- a/src/oci/fleet_software_update/models/apply_action.py
+++ b/src/oci/fleet_software_update/models/apply_action.py
@@ -35,7 +35,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this ApplyAction.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param time_created:
diff --git a/src/oci/fleet_software_update/models/apply_action_summary.py b/src/oci/fleet_software_update/models/apply_action_summary.py
index 72be55964c..a68bfc2229 100644
--- a/src/oci/fleet_software_update/models/apply_action_summary.py
+++ b/src/oci/fleet_software_update/models/apply_action_summary.py
@@ -35,7 +35,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this ApplyActionSummary.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param time_created:
diff --git a/src/oci/fleet_software_update/models/apply_fsu_job.py b/src/oci/fleet_software_update/models/apply_fsu_job.py
index e43927aa42..67503ab89c 100644
--- a/src/oci/fleet_software_update/models/apply_fsu_job.py
+++ b/src/oci/fleet_software_update/models/apply_fsu_job.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this ApplyFsuJob.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"
:type type: str
:param compartment_id:
diff --git a/src/oci/fleet_software_update/models/apply_fsu_job_summary.py b/src/oci/fleet_software_update/models/apply_fsu_job_summary.py
index fe1e0c4b47..f488e68f60 100644
--- a/src/oci/fleet_software_update/models/apply_fsu_job_summary.py
+++ b/src/oci/fleet_software_update/models/apply_fsu_job_summary.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this ApplyFsuJobSummary.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"
:type type: str
:param compartment_id:
diff --git a/src/oci/fleet_software_update/models/cleanup_action.py b/src/oci/fleet_software_update/models/cleanup_action.py
index 6cb74d4560..2aced88c65 100644
--- a/src/oci/fleet_software_update/models/cleanup_action.py
+++ b/src/oci/fleet_software_update/models/cleanup_action.py
@@ -36,7 +36,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this CleanupAction.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param time_created:
diff --git a/src/oci/fleet_software_update/models/cleanup_action_summary.py b/src/oci/fleet_software_update/models/cleanup_action_summary.py
index 50b5a11ea4..404089aed4 100644
--- a/src/oci/fleet_software_update/models/cleanup_action_summary.py
+++ b/src/oci/fleet_software_update/models/cleanup_action_summary.py
@@ -35,7 +35,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this CleanupActionSummary.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param time_created:
diff --git a/src/oci/fleet_software_update/models/cleanup_fsu_job.py b/src/oci/fleet_software_update/models/cleanup_fsu_job.py
index bfa6f58832..1e1588f09d 100644
--- a/src/oci/fleet_software_update/models/cleanup_fsu_job.py
+++ b/src/oci/fleet_software_update/models/cleanup_fsu_job.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this CleanupFsuJob.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"
:type type: str
:param compartment_id:
diff --git a/src/oci/fleet_software_update/models/cleanup_fsu_job_summary.py b/src/oci/fleet_software_update/models/cleanup_fsu_job_summary.py
index 1177de838e..062f89911c 100644
--- a/src/oci/fleet_software_update/models/cleanup_fsu_job_summary.py
+++ b/src/oci/fleet_software_update/models/cleanup_fsu_job_summary.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this CleanupFsuJobSummary.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"
:type type: str
:param compartment_id:
diff --git a/src/oci/fleet_software_update/models/create_apply_action_details.py b/src/oci/fleet_software_update/models/create_apply_action_details.py
index 261289ecba..a07541f088 100644
--- a/src/oci/fleet_software_update/models/create_apply_action_details.py
+++ b/src/oci/fleet_software_update/models/create_apply_action_details.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this CreateApplyActionDetails.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param freeform_tags:
diff --git a/src/oci/fleet_software_update/models/create_cleanup_action_details.py b/src/oci/fleet_software_update/models/create_cleanup_action_details.py
index 0aa068932c..1b1d49050b 100644
--- a/src/oci/fleet_software_update/models/create_cleanup_action_details.py
+++ b/src/oci/fleet_software_update/models/create_cleanup_action_details.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this CreateCleanupActionDetails.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param freeform_tags:
diff --git a/src/oci/fleet_software_update/models/create_fsu_action_details.py b/src/oci/fleet_software_update/models/create_fsu_action_details.py
index 49aae348d5..4088f231d9 100644
--- a/src/oci/fleet_software_update/models/create_fsu_action_details.py
+++ b/src/oci/fleet_software_update/models/create_fsu_action_details.py
@@ -35,11 +35,16 @@ class CreateFsuActionDetails(object):
#: This constant has a value of "CLEANUP"
TYPE_CLEANUP = "CLEANUP"
+ #: A constant which can be used with the type property of a CreateFsuActionDetails.
+ #: This constant has a value of "ROLLBACK_MAINTENANCE_CYCLE"
+ TYPE_ROLLBACK_MAINTENANCE_CYCLE = "ROLLBACK_MAINTENANCE_CYCLE"
+
def __init__(self, **kwargs):
"""
Initializes a new CreateFsuActionDetails 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.fleet_software_update.models.CreateRollbackCycleApplyActionDetails`
* :class:`~oci.fleet_software_update.models.CreateApplyActionDetails`
* :class:`~oci.fleet_software_update.models.CreateStageActionDetails`
* :class:`~oci.fleet_software_update.models.CreateRollbackActionDetails`
@@ -58,7 +63,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this CreateFsuActionDetails.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param freeform_tags:
@@ -100,6 +105,9 @@ def get_subtype(object_dictionary):
"""
type = object_dictionary['type']
+ if type == 'ROLLBACK_MAINTENANCE_CYCLE':
+ return 'CreateRollbackCycleApplyActionDetails'
+
if type == 'APPLY':
return 'CreateApplyActionDetails'
@@ -171,7 +179,7 @@ def type(self):
**[Required]** Gets the type of this CreateFsuActionDetails.
Type of Exadata Fleet Update Action.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:return: The type of this CreateFsuActionDetails.
@@ -189,7 +197,7 @@ def type(self, type):
:param type: The type of this CreateFsuActionDetails.
:type: str
"""
- allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"]
+ allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"]
if not value_allowed_none_or_none_sentinel(type, allowed_values):
raise ValueError(
f"Invalid value for `type`, must be None or one of {allowed_values}"
diff --git a/src/oci/fleet_software_update/models/create_precheck_action_details.py b/src/oci/fleet_software_update/models/create_precheck_action_details.py
index 70528f9fcd..e33123b8e1 100644
--- a/src/oci/fleet_software_update/models/create_precheck_action_details.py
+++ b/src/oci/fleet_software_update/models/create_precheck_action_details.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this CreatePrecheckActionDetails.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param freeform_tags:
diff --git a/src/oci/fleet_software_update/models/create_rollback_action_details.py b/src/oci/fleet_software_update/models/create_rollback_action_details.py
index 91e38a0202..1599dee542 100644
--- a/src/oci/fleet_software_update/models/create_rollback_action_details.py
+++ b/src/oci/fleet_software_update/models/create_rollback_action_details.py
@@ -33,7 +33,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this CreateRollbackActionDetails.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param freeform_tags:
diff --git a/src/oci/fleet_software_update/models/create_rollback_cycle_apply_action_details.py b/src/oci/fleet_software_update/models/create_rollback_cycle_apply_action_details.py
new file mode 100644
index 0000000000..28b32e9a08
--- /dev/null
+++ b/src/oci/fleet_software_update/models/create_rollback_cycle_apply_action_details.py
@@ -0,0 +1,111 @@
+# 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: 20220528
+
+from .create_fsu_action_details import CreateFsuActionDetails
+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 CreateRollbackCycleApplyActionDetails(CreateFsuActionDetails):
+ """
+ Exadata Fleet Update Rollback Action creation details. This action will rollback
+ the maintenance cycle to the source home after a successful apply FSUAction.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new CreateRollbackCycleApplyActionDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.fleet_software_update.models.CreateRollbackCycleApplyActionDetails.type` attribute
+ of this class is ``ROLLBACK_MAINTENANCE_CYCLE`` and it should not be changed.
+ 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 CreateRollbackCycleApplyActionDetails.
+ :type display_name: str
+
+ :param compartment_id:
+ The value to assign to the compartment_id property of this CreateRollbackCycleApplyActionDetails.
+ :type compartment_id: str
+
+ :param type:
+ The value to assign to the type property of this CreateRollbackCycleApplyActionDetails.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
+ :type type: str
+
+ :param freeform_tags:
+ The value to assign to the freeform_tags property of this CreateRollbackCycleApplyActionDetails.
+ :type freeform_tags: dict(str, str)
+
+ :param defined_tags:
+ The value to assign to the defined_tags property of this CreateRollbackCycleApplyActionDetails.
+ :type defined_tags: dict(str, dict(str, object))
+
+ :param fsu_cycle_id:
+ The value to assign to the fsu_cycle_id property of this CreateRollbackCycleApplyActionDetails.
+ :type fsu_cycle_id: str
+
+ """
+ self.swagger_types = {
+ 'display_name': 'str',
+ 'compartment_id': 'str',
+ 'type': 'str',
+ 'freeform_tags': 'dict(str, str)',
+ 'defined_tags': 'dict(str, dict(str, object))',
+ 'fsu_cycle_id': 'str'
+ }
+
+ self.attribute_map = {
+ 'display_name': 'displayName',
+ 'compartment_id': 'compartmentId',
+ 'type': 'type',
+ 'freeform_tags': 'freeformTags',
+ 'defined_tags': 'definedTags',
+ 'fsu_cycle_id': 'fsuCycleId'
+ }
+
+ self._display_name = None
+ self._compartment_id = None
+ self._type = None
+ self._freeform_tags = None
+ self._defined_tags = None
+ self._fsu_cycle_id = None
+ self._type = 'ROLLBACK_MAINTENANCE_CYCLE'
+
+ @property
+ def fsu_cycle_id(self):
+ """
+ **[Required]** Gets the fsu_cycle_id of this CreateRollbackCycleApplyActionDetails.
+ OCID identifier for the Exadata Fleet Update Cycle the Action will be part of.
+
+
+ :return: The fsu_cycle_id of this CreateRollbackCycleApplyActionDetails.
+ :rtype: str
+ """
+ return self._fsu_cycle_id
+
+ @fsu_cycle_id.setter
+ def fsu_cycle_id(self, fsu_cycle_id):
+ """
+ Sets the fsu_cycle_id of this CreateRollbackCycleApplyActionDetails.
+ OCID identifier for the Exadata Fleet Update Cycle the Action will be part of.
+
+
+ :param fsu_cycle_id: The fsu_cycle_id of this CreateRollbackCycleApplyActionDetails.
+ :type: str
+ """
+ self._fsu_cycle_id = fsu_cycle_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/fleet_software_update/models/create_stage_action_details.py b/src/oci/fleet_software_update/models/create_stage_action_details.py
index 7ce15aad51..04712db1f8 100644
--- a/src/oci/fleet_software_update/models/create_stage_action_details.py
+++ b/src/oci/fleet_software_update/models/create_stage_action_details.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this CreateStageActionDetails.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param freeform_tags:
diff --git a/src/oci/fleet_software_update/models/db_collection.py b/src/oci/fleet_software_update/models/db_collection.py
index b8e07d4bd9..082de250a7 100644
--- a/src/oci/fleet_software_update/models/db_collection.py
+++ b/src/oci/fleet_software_update/models/db_collection.py
@@ -95,6 +95,10 @@ def __init__(self, **kwargs):
The value to assign to the lifecycle_details property of this DbCollection.
:type lifecycle_details: str
+ :param last_completed_fsu_cycle_id:
+ The value to assign to the last_completed_fsu_cycle_id property of this DbCollection.
+ :type last_completed_fsu_cycle_id: str
+
:param freeform_tags:
The value to assign to the freeform_tags property of this DbCollection.
:type freeform_tags: dict(str, str)
@@ -130,6 +134,7 @@ def __init__(self, **kwargs):
'time_updated': 'datetime',
'lifecycle_state': 'str',
'lifecycle_details': 'str',
+ 'last_completed_fsu_cycle_id': 'str',
'freeform_tags': 'dict(str, str)',
'defined_tags': 'dict(str, dict(str, object))',
'system_tags': 'dict(str, dict(str, object))',
@@ -149,6 +154,7 @@ def __init__(self, **kwargs):
'time_updated': 'timeUpdated',
'lifecycle_state': 'lifecycleState',
'lifecycle_details': 'lifecycleDetails',
+ 'last_completed_fsu_cycle_id': 'lastCompletedFsuCycleId',
'freeform_tags': 'freeformTags',
'defined_tags': 'definedTags',
'system_tags': 'systemTags',
@@ -167,6 +173,7 @@ def __init__(self, **kwargs):
self._time_updated = None
self._lifecycle_state = None
self._lifecycle_details = None
+ self._last_completed_fsu_cycle_id = None
self._freeform_tags = None
self._defined_tags = None
self._system_tags = None
diff --git a/src/oci/fleet_software_update/models/db_fsu_collection_summary.py b/src/oci/fleet_software_update/models/db_fsu_collection_summary.py
index 25a9458016..707ad4107c 100644
--- a/src/oci/fleet_software_update/models/db_fsu_collection_summary.py
+++ b/src/oci/fleet_software_update/models/db_fsu_collection_summary.py
@@ -95,6 +95,10 @@ def __init__(self, **kwargs):
The value to assign to the lifecycle_details property of this DbFsuCollectionSummary.
:type lifecycle_details: str
+ :param last_completed_fsu_cycle_id:
+ The value to assign to the last_completed_fsu_cycle_id property of this DbFsuCollectionSummary.
+ :type last_completed_fsu_cycle_id: str
+
:param freeform_tags:
The value to assign to the freeform_tags property of this DbFsuCollectionSummary.
:type freeform_tags: dict(str, str)
@@ -126,6 +130,7 @@ def __init__(self, **kwargs):
'time_updated': 'datetime',
'lifecycle_state': 'str',
'lifecycle_details': 'str',
+ 'last_completed_fsu_cycle_id': 'str',
'freeform_tags': 'dict(str, str)',
'defined_tags': 'dict(str, dict(str, object))',
'system_tags': 'dict(str, dict(str, object))',
@@ -144,6 +149,7 @@ def __init__(self, **kwargs):
'time_updated': 'timeUpdated',
'lifecycle_state': 'lifecycleState',
'lifecycle_details': 'lifecycleDetails',
+ 'last_completed_fsu_cycle_id': 'lastCompletedFsuCycleId',
'freeform_tags': 'freeformTags',
'defined_tags': 'definedTags',
'system_tags': 'systemTags',
@@ -161,6 +167,7 @@ def __init__(self, **kwargs):
self._time_updated = None
self._lifecycle_state = None
self._lifecycle_details = None
+ self._last_completed_fsu_cycle_id = None
self._freeform_tags = None
self._defined_tags = None
self._system_tags = None
diff --git a/src/oci/fleet_software_update/models/fsu_action.py b/src/oci/fleet_software_update/models/fsu_action.py
index 462e6dcf47..65c4680b5d 100644
--- a/src/oci/fleet_software_update/models/fsu_action.py
+++ b/src/oci/fleet_software_update/models/fsu_action.py
@@ -35,6 +35,10 @@ class FsuAction(object):
#: This constant has a value of "CLEANUP"
TYPE_CLEANUP = "CLEANUP"
+ #: A constant which can be used with the type property of a FsuAction.
+ #: This constant has a value of "ROLLBACK_MAINTENANCE_CYCLE"
+ TYPE_ROLLBACK_MAINTENANCE_CYCLE = "ROLLBACK_MAINTENANCE_CYCLE"
+
#: A constant which can be used with the lifecycle_state property of a FsuAction.
#: This constant has a value of "ACCEPTED"
LIFECYCLE_STATE_ACCEPTED = "ACCEPTED"
@@ -90,6 +94,7 @@ def __init__(self, **kwargs):
* :class:`~oci.fleet_software_update.models.CleanupAction`
* :class:`~oci.fleet_software_update.models.PrecheckAction`
+ * :class:`~oci.fleet_software_update.models.RollbackCycleAction`
* :class:`~oci.fleet_software_update.models.StageAction`
* :class:`~oci.fleet_software_update.models.ApplyAction`
* :class:`~oci.fleet_software_update.models.RollbackAction`
@@ -110,7 +115,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this FsuAction.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type type: str
@@ -213,6 +218,9 @@ def get_subtype(object_dictionary):
if type == 'PRECHECK':
return 'PrecheckAction'
+ if type == 'ROLLBACK_MAINTENANCE_CYCLE':
+ return 'RollbackCycleAction'
+
if type == 'STAGE':
return 'StageAction'
@@ -302,7 +310,7 @@ def type(self):
**[Required]** Gets the type of this FsuAction.
Type of Exadata Fleet Update Action.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -321,7 +329,7 @@ def type(self, type):
:param type: The type of this FsuAction.
:type: str
"""
- allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"]
+ allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"]
if not value_allowed_none_or_none_sentinel(type, allowed_values):
type = 'UNKNOWN_ENUM_VALUE'
self._type = type
diff --git a/src/oci/fleet_software_update/models/fsu_action_summary.py b/src/oci/fleet_software_update/models/fsu_action_summary.py
index d71dc42877..a8d2343d97 100644
--- a/src/oci/fleet_software_update/models/fsu_action_summary.py
+++ b/src/oci/fleet_software_update/models/fsu_action_summary.py
@@ -35,6 +35,10 @@ class FsuActionSummary(object):
#: This constant has a value of "CLEANUP"
TYPE_CLEANUP = "CLEANUP"
+ #: A constant which can be used with the type property of a FsuActionSummary.
+ #: This constant has a value of "ROLLBACK_MAINTENANCE_CYCLE"
+ TYPE_ROLLBACK_MAINTENANCE_CYCLE = "ROLLBACK_MAINTENANCE_CYCLE"
+
#: A constant which can be used with the lifecycle_state property of a FsuActionSummary.
#: This constant has a value of "ACCEPTED"
LIFECYCLE_STATE_ACCEPTED = "ACCEPTED"
@@ -88,6 +92,7 @@ def __init__(self, **kwargs):
Initializes a new FsuActionSummary 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.fleet_software_update.models.RollbackCycleActionSummary`
* :class:`~oci.fleet_software_update.models.StageActionSummary`
* :class:`~oci.fleet_software_update.models.ApplyActionSummary`
* :class:`~oci.fleet_software_update.models.CleanupActionSummary`
@@ -110,7 +115,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this FsuActionSummary.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type type: str
@@ -207,6 +212,9 @@ def get_subtype(object_dictionary):
"""
type = object_dictionary['type']
+ if type == 'ROLLBACK_MAINTENANCE_CYCLE':
+ return 'RollbackCycleActionSummary'
+
if type == 'STAGE':
return 'StageActionSummary'
@@ -302,7 +310,7 @@ def type(self):
**[Required]** Gets the type of this FsuActionSummary.
Type of Exadata Fleet Update Action.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -321,7 +329,7 @@ def type(self, type):
:param type: The type of this FsuActionSummary.
:type: str
"""
- allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"]
+ allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"]
if not value_allowed_none_or_none_sentinel(type, allowed_values):
type = 'UNKNOWN_ENUM_VALUE'
self._type = type
diff --git a/src/oci/fleet_software_update/models/fsu_collection.py b/src/oci/fleet_software_update/models/fsu_collection.py
index dcb91aca00..f250e43ade 100644
--- a/src/oci/fleet_software_update/models/fsu_collection.py
+++ b/src/oci/fleet_software_update/models/fsu_collection.py
@@ -119,6 +119,10 @@ def __init__(self, **kwargs):
The value to assign to the lifecycle_details property of this FsuCollection.
:type lifecycle_details: str
+ :param last_completed_fsu_cycle_id:
+ The value to assign to the last_completed_fsu_cycle_id property of this FsuCollection.
+ :type last_completed_fsu_cycle_id: str
+
:param freeform_tags:
The value to assign to the freeform_tags property of this FsuCollection.
:type freeform_tags: dict(str, str)
@@ -144,6 +148,7 @@ def __init__(self, **kwargs):
'time_updated': 'datetime',
'lifecycle_state': 'str',
'lifecycle_details': 'str',
+ 'last_completed_fsu_cycle_id': 'str',
'freeform_tags': 'dict(str, str)',
'defined_tags': 'dict(str, dict(str, object))',
'system_tags': 'dict(str, dict(str, object))'
@@ -161,6 +166,7 @@ def __init__(self, **kwargs):
'time_updated': 'timeUpdated',
'lifecycle_state': 'lifecycleState',
'lifecycle_details': 'lifecycleDetails',
+ 'last_completed_fsu_cycle_id': 'lastCompletedFsuCycleId',
'freeform_tags': 'freeformTags',
'defined_tags': 'definedTags',
'system_tags': 'systemTags'
@@ -177,6 +183,7 @@ def __init__(self, **kwargs):
self._time_updated = None
self._lifecycle_state = None
self._lifecycle_details = None
+ self._last_completed_fsu_cycle_id = None
self._freeform_tags = None
self._defined_tags = None
self._system_tags = None
@@ -477,6 +484,34 @@ def lifecycle_details(self, lifecycle_details):
"""
self._lifecycle_details = lifecycle_details
+ @property
+ def last_completed_fsu_cycle_id(self):
+ """
+ Gets the last_completed_fsu_cycle_id of this FsuCollection.
+ The `OCID`__ of last completed FSU Cycle.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :return: The last_completed_fsu_cycle_id of this FsuCollection.
+ :rtype: str
+ """
+ return self._last_completed_fsu_cycle_id
+
+ @last_completed_fsu_cycle_id.setter
+ def last_completed_fsu_cycle_id(self, last_completed_fsu_cycle_id):
+ """
+ Sets the last_completed_fsu_cycle_id of this FsuCollection.
+ The `OCID`__ of last completed FSU Cycle.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :param last_completed_fsu_cycle_id: The last_completed_fsu_cycle_id of this FsuCollection.
+ :type: str
+ """
+ self._last_completed_fsu_cycle_id = last_completed_fsu_cycle_id
+
@property
def freeform_tags(self):
"""
diff --git a/src/oci/fleet_software_update/models/fsu_collection_summary.py b/src/oci/fleet_software_update/models/fsu_collection_summary.py
index 7fbbba41db..427c581a12 100644
--- a/src/oci/fleet_software_update/models/fsu_collection_summary.py
+++ b/src/oci/fleet_software_update/models/fsu_collection_summary.py
@@ -119,6 +119,10 @@ def __init__(self, **kwargs):
The value to assign to the lifecycle_details property of this FsuCollectionSummary.
:type lifecycle_details: str
+ :param last_completed_fsu_cycle_id:
+ The value to assign to the last_completed_fsu_cycle_id property of this FsuCollectionSummary.
+ :type last_completed_fsu_cycle_id: str
+
:param freeform_tags:
The value to assign to the freeform_tags property of this FsuCollectionSummary.
:type freeform_tags: dict(str, str)
@@ -144,6 +148,7 @@ def __init__(self, **kwargs):
'time_updated': 'datetime',
'lifecycle_state': 'str',
'lifecycle_details': 'str',
+ 'last_completed_fsu_cycle_id': 'str',
'freeform_tags': 'dict(str, str)',
'defined_tags': 'dict(str, dict(str, object))',
'system_tags': 'dict(str, dict(str, object))'
@@ -161,6 +166,7 @@ def __init__(self, **kwargs):
'time_updated': 'timeUpdated',
'lifecycle_state': 'lifecycleState',
'lifecycle_details': 'lifecycleDetails',
+ 'last_completed_fsu_cycle_id': 'lastCompletedFsuCycleId',
'freeform_tags': 'freeformTags',
'defined_tags': 'definedTags',
'system_tags': 'systemTags'
@@ -177,6 +183,7 @@ def __init__(self, **kwargs):
self._time_updated = None
self._lifecycle_state = None
self._lifecycle_details = None
+ self._last_completed_fsu_cycle_id = None
self._freeform_tags = None
self._defined_tags = None
self._system_tags = None
@@ -477,6 +484,34 @@ def lifecycle_details(self, lifecycle_details):
"""
self._lifecycle_details = lifecycle_details
+ @property
+ def last_completed_fsu_cycle_id(self):
+ """
+ Gets the last_completed_fsu_cycle_id of this FsuCollectionSummary.
+ The `OCID`__ of last completed FSU Cycle.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :return: The last_completed_fsu_cycle_id of this FsuCollectionSummary.
+ :rtype: str
+ """
+ return self._last_completed_fsu_cycle_id
+
+ @last_completed_fsu_cycle_id.setter
+ def last_completed_fsu_cycle_id(self, last_completed_fsu_cycle_id):
+ """
+ Sets the last_completed_fsu_cycle_id of this FsuCollectionSummary.
+ The `OCID`__ of last completed FSU Cycle.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :param last_completed_fsu_cycle_id: The last_completed_fsu_cycle_id of this FsuCollectionSummary.
+ :type: str
+ """
+ self._last_completed_fsu_cycle_id = last_completed_fsu_cycle_id
+
@property
def freeform_tags(self):
"""
diff --git a/src/oci/fleet_software_update/models/fsu_cycle.py b/src/oci/fleet_software_update/models/fsu_cycle.py
index 69f056e184..c282e778a4 100644
--- a/src/oci/fleet_software_update/models/fsu_cycle.py
+++ b/src/oci/fleet_software_update/models/fsu_cycle.py
@@ -27,6 +27,26 @@ class FsuCycle(object):
#: This constant has a value of "GI"
COLLECTION_TYPE_GI = "GI"
+ #: A constant which can be used with the rollback_cycle_state property of a FsuCycle.
+ #: This constant has a value of "ABLE_TO_EXECUTE"
+ ROLLBACK_CYCLE_STATE_ABLE_TO_EXECUTE = "ABLE_TO_EXECUTE"
+
+ #: A constant which can be used with the rollback_cycle_state property of a FsuCycle.
+ #: This constant has a value of "IN_PROGRESS"
+ ROLLBACK_CYCLE_STATE_IN_PROGRESS = "IN_PROGRESS"
+
+ #: A constant which can be used with the rollback_cycle_state property of a FsuCycle.
+ #: This constant has a value of "FAILED"
+ ROLLBACK_CYCLE_STATE_FAILED = "FAILED"
+
+ #: A constant which can be used with the rollback_cycle_state property of a FsuCycle.
+ #: This constant has a value of "NEEDS_ATTENTION"
+ ROLLBACK_CYCLE_STATE_NEEDS_ATTENTION = "NEEDS_ATTENTION"
+
+ #: A constant which can be used with the rollback_cycle_state property of a FsuCycle.
+ #: This constant has a value of "SUCCEEDED"
+ ROLLBACK_CYCLE_STATE_SUCCEEDED = "SUCCEEDED"
+
#: A constant which can be used with the last_completed_action property of a FsuCycle.
#: This constant has a value of "STAGE"
LAST_COMPLETED_ACTION_STAGE = "STAGE"
@@ -51,6 +71,10 @@ class FsuCycle(object):
#: This constant has a value of "CLEANUP"
LAST_COMPLETED_ACTION_CLEANUP = "CLEANUP"
+ #: A constant which can be used with the last_completed_action property of a FsuCycle.
+ #: This constant has a value of "ROLLBACK_MAINTENANCE_CYCLE"
+ LAST_COMPLETED_ACTION_ROLLBACK_MAINTENANCE_CYCLE = "ROLLBACK_MAINTENANCE_CYCLE"
+
#: A constant which can be used with the lifecycle_state property of a FsuCycle.
#: This constant has a value of "CREATING"
LIFECYCLE_STATE_CREATING = "CREATING"
@@ -132,9 +156,19 @@ def __init__(self, **kwargs):
The value to assign to the next_action_to_execute property of this FsuCycle.
:type next_action_to_execute: list[oci.fleet_software_update.models.NextActionToExecuteDetails]
+ :param last_completed_action_id:
+ The value to assign to the last_completed_action_id property of this FsuCycle.
+ :type last_completed_action_id: str
+
+ :param rollback_cycle_state:
+ The value to assign to the rollback_cycle_state property of this FsuCycle.
+ Allowed values for this property are: "ABLE_TO_EXECUTE", "IN_PROGRESS", "FAILED", "NEEDS_ATTENTION", "SUCCEEDED", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type rollback_cycle_state: str
+
:param last_completed_action:
The value to assign to the last_completed_action property of this FsuCycle.
- Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type last_completed_action: str
@@ -202,6 +236,8 @@ def __init__(self, **kwargs):
'collection_type': 'str',
'executing_fsu_action_id': 'str',
'next_action_to_execute': 'list[NextActionToExecuteDetails]',
+ 'last_completed_action_id': 'str',
+ 'rollback_cycle_state': 'str',
'last_completed_action': 'str',
'goal_version_details': 'FsuGoalVersionDetails',
'batching_strategy': 'BatchingStrategyDetails',
@@ -227,6 +263,8 @@ def __init__(self, **kwargs):
'collection_type': 'collectionType',
'executing_fsu_action_id': 'executingFsuActionId',
'next_action_to_execute': 'nextActionToExecute',
+ 'last_completed_action_id': 'lastCompletedActionId',
+ 'rollback_cycle_state': 'rollbackCycleState',
'last_completed_action': 'lastCompletedAction',
'goal_version_details': 'goalVersionDetails',
'batching_strategy': 'batchingStrategy',
@@ -251,6 +289,8 @@ def __init__(self, **kwargs):
self._collection_type = None
self._executing_fsu_action_id = None
self._next_action_to_execute = None
+ self._last_completed_action_id = None
+ self._rollback_cycle_state = None
self._last_completed_action = None
self._goal_version_details = None
self._batching_strategy = None
@@ -483,6 +523,68 @@ def next_action_to_execute(self, next_action_to_execute):
"""
self._next_action_to_execute = next_action_to_execute
+ @property
+ def last_completed_action_id(self):
+ """
+ Gets the last_completed_action_id of this FsuCycle.
+ The `OCID`__ of the latest Action
+ in the Exadata Fleet Update Cycle.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :return: The last_completed_action_id of this FsuCycle.
+ :rtype: str
+ """
+ return self._last_completed_action_id
+
+ @last_completed_action_id.setter
+ def last_completed_action_id(self, last_completed_action_id):
+ """
+ Sets the last_completed_action_id of this FsuCycle.
+ The `OCID`__ of the latest Action
+ in the Exadata Fleet Update Cycle.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :param last_completed_action_id: The last_completed_action_id of this FsuCycle.
+ :type: str
+ """
+ self._last_completed_action_id = last_completed_action_id
+
+ @property
+ def rollback_cycle_state(self):
+ """
+ Gets the rollback_cycle_state of this FsuCycle.
+ Current rollback cycle state if rollback maintenance cycle action has been attempted.
+ No value would indicate that the Cycle has not run a rollback maintenance cycle action before.
+
+ Allowed values for this property are: "ABLE_TO_EXECUTE", "IN_PROGRESS", "FAILED", "NEEDS_ATTENTION", "SUCCEEDED", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The rollback_cycle_state of this FsuCycle.
+ :rtype: str
+ """
+ return self._rollback_cycle_state
+
+ @rollback_cycle_state.setter
+ def rollback_cycle_state(self, rollback_cycle_state):
+ """
+ Sets the rollback_cycle_state of this FsuCycle.
+ Current rollback cycle state if rollback maintenance cycle action has been attempted.
+ No value would indicate that the Cycle has not run a rollback maintenance cycle action before.
+
+
+ :param rollback_cycle_state: The rollback_cycle_state of this FsuCycle.
+ :type: str
+ """
+ allowed_values = ["ABLE_TO_EXECUTE", "IN_PROGRESS", "FAILED", "NEEDS_ATTENTION", "SUCCEEDED"]
+ if not value_allowed_none_or_none_sentinel(rollback_cycle_state, allowed_values):
+ rollback_cycle_state = 'UNKNOWN_ENUM_VALUE'
+ self._rollback_cycle_state = rollback_cycle_state
+
@property
def last_completed_action(self):
"""
@@ -490,7 +592,7 @@ def last_completed_action(self):
The latest Action type that was completed in the Exadata Fleet Update Cycle.
No value would indicate that the Cycle has not completed any Action yet.
- Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -510,7 +612,7 @@ def last_completed_action(self, last_completed_action):
:param last_completed_action: The last_completed_action of this FsuCycle.
:type: str
"""
- allowed_values = ["STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"]
+ allowed_values = ["STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"]
if not value_allowed_none_or_none_sentinel(last_completed_action, allowed_values):
last_completed_action = 'UNKNOWN_ENUM_VALUE'
self._last_completed_action = last_completed_action
diff --git a/src/oci/fleet_software_update/models/fsu_cycle_summary.py b/src/oci/fleet_software_update/models/fsu_cycle_summary.py
index 8ee135efd3..b5fad6e274 100644
--- a/src/oci/fleet_software_update/models/fsu_cycle_summary.py
+++ b/src/oci/fleet_software_update/models/fsu_cycle_summary.py
@@ -27,6 +27,26 @@ class FsuCycleSummary(object):
#: This constant has a value of "GI"
COLLECTION_TYPE_GI = "GI"
+ #: A constant which can be used with the rollback_cycle_state property of a FsuCycleSummary.
+ #: This constant has a value of "ABLE_TO_EXECUTE"
+ ROLLBACK_CYCLE_STATE_ABLE_TO_EXECUTE = "ABLE_TO_EXECUTE"
+
+ #: A constant which can be used with the rollback_cycle_state property of a FsuCycleSummary.
+ #: This constant has a value of "IN_PROGRESS"
+ ROLLBACK_CYCLE_STATE_IN_PROGRESS = "IN_PROGRESS"
+
+ #: A constant which can be used with the rollback_cycle_state property of a FsuCycleSummary.
+ #: This constant has a value of "FAILED"
+ ROLLBACK_CYCLE_STATE_FAILED = "FAILED"
+
+ #: A constant which can be used with the rollback_cycle_state property of a FsuCycleSummary.
+ #: This constant has a value of "NEEDS_ATTENTION"
+ ROLLBACK_CYCLE_STATE_NEEDS_ATTENTION = "NEEDS_ATTENTION"
+
+ #: A constant which can be used with the rollback_cycle_state property of a FsuCycleSummary.
+ #: This constant has a value of "SUCCEEDED"
+ ROLLBACK_CYCLE_STATE_SUCCEEDED = "SUCCEEDED"
+
#: A constant which can be used with the last_completed_action property of a FsuCycleSummary.
#: This constant has a value of "STAGE"
LAST_COMPLETED_ACTION_STAGE = "STAGE"
@@ -51,6 +71,10 @@ class FsuCycleSummary(object):
#: This constant has a value of "CLEANUP"
LAST_COMPLETED_ACTION_CLEANUP = "CLEANUP"
+ #: A constant which can be used with the last_completed_action property of a FsuCycleSummary.
+ #: This constant has a value of "ROLLBACK_MAINTENANCE_CYCLE"
+ LAST_COMPLETED_ACTION_ROLLBACK_MAINTENANCE_CYCLE = "ROLLBACK_MAINTENANCE_CYCLE"
+
#: A constant which can be used with the lifecycle_state property of a FsuCycleSummary.
#: This constant has a value of "CREATING"
LIFECYCLE_STATE_CREATING = "CREATING"
@@ -128,9 +152,19 @@ def __init__(self, **kwargs):
The value to assign to the next_action_to_execute property of this FsuCycleSummary.
:type next_action_to_execute: list[oci.fleet_software_update.models.NextActionToExecuteDetails]
+ :param last_completed_action_id:
+ The value to assign to the last_completed_action_id property of this FsuCycleSummary.
+ :type last_completed_action_id: str
+
+ :param rollback_cycle_state:
+ The value to assign to the rollback_cycle_state property of this FsuCycleSummary.
+ Allowed values for this property are: "ABLE_TO_EXECUTE", "IN_PROGRESS", "FAILED", "NEEDS_ATTENTION", "SUCCEEDED", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type rollback_cycle_state: str
+
:param last_completed_action:
The value to assign to the last_completed_action property of this FsuCycleSummary.
- Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type last_completed_action: str
@@ -186,6 +220,8 @@ def __init__(self, **kwargs):
'collection_type': 'str',
'executing_fsu_action_id': 'str',
'next_action_to_execute': 'list[NextActionToExecuteDetails]',
+ 'last_completed_action_id': 'str',
+ 'rollback_cycle_state': 'str',
'last_completed_action': 'str',
'goal_version_details': 'FsuGoalVersionDetails',
'diagnostics_collection': 'DiagnosticsCollectionDetails',
@@ -208,6 +244,8 @@ def __init__(self, **kwargs):
'collection_type': 'collectionType',
'executing_fsu_action_id': 'executingFsuActionId',
'next_action_to_execute': 'nextActionToExecute',
+ 'last_completed_action_id': 'lastCompletedActionId',
+ 'rollback_cycle_state': 'rollbackCycleState',
'last_completed_action': 'lastCompletedAction',
'goal_version_details': 'goalVersionDetails',
'diagnostics_collection': 'diagnosticsCollection',
@@ -229,6 +267,8 @@ def __init__(self, **kwargs):
self._collection_type = None
self._executing_fsu_action_id = None
self._next_action_to_execute = None
+ self._last_completed_action_id = None
+ self._rollback_cycle_state = None
self._last_completed_action = None
self._goal_version_details = None
self._diagnostics_collection = None
@@ -445,6 +485,64 @@ def next_action_to_execute(self, next_action_to_execute):
"""
self._next_action_to_execute = next_action_to_execute
+ @property
+ def last_completed_action_id(self):
+ """
+ Gets the last_completed_action_id of this FsuCycleSummary.
+ OCID identifier for the latest Action the Exadata Fleet Update Cycle.
+ No value would indicate that the Cycle has not completed any Action yet.
+
+
+ :return: The last_completed_action_id of this FsuCycleSummary.
+ :rtype: str
+ """
+ return self._last_completed_action_id
+
+ @last_completed_action_id.setter
+ def last_completed_action_id(self, last_completed_action_id):
+ """
+ Sets the last_completed_action_id of this FsuCycleSummary.
+ OCID identifier for the latest Action the Exadata Fleet Update Cycle.
+ No value would indicate that the Cycle has not completed any Action yet.
+
+
+ :param last_completed_action_id: The last_completed_action_id of this FsuCycleSummary.
+ :type: str
+ """
+ self._last_completed_action_id = last_completed_action_id
+
+ @property
+ def rollback_cycle_state(self):
+ """
+ Gets the rollback_cycle_state of this FsuCycleSummary.
+ Current rollback cycle state if rollback maintenance cycle action has been attempted.
+ No value would indicate that the Cycle has not run a rollback maintenance cycle action before.
+
+ Allowed values for this property are: "ABLE_TO_EXECUTE", "IN_PROGRESS", "FAILED", "NEEDS_ATTENTION", "SUCCEEDED", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The rollback_cycle_state of this FsuCycleSummary.
+ :rtype: str
+ """
+ return self._rollback_cycle_state
+
+ @rollback_cycle_state.setter
+ def rollback_cycle_state(self, rollback_cycle_state):
+ """
+ Sets the rollback_cycle_state of this FsuCycleSummary.
+ Current rollback cycle state if rollback maintenance cycle action has been attempted.
+ No value would indicate that the Cycle has not run a rollback maintenance cycle action before.
+
+
+ :param rollback_cycle_state: The rollback_cycle_state of this FsuCycleSummary.
+ :type: str
+ """
+ allowed_values = ["ABLE_TO_EXECUTE", "IN_PROGRESS", "FAILED", "NEEDS_ATTENTION", "SUCCEEDED"]
+ if not value_allowed_none_or_none_sentinel(rollback_cycle_state, allowed_values):
+ rollback_cycle_state = 'UNKNOWN_ENUM_VALUE'
+ self._rollback_cycle_state = rollback_cycle_state
+
@property
def last_completed_action(self):
"""
@@ -452,7 +550,7 @@ def last_completed_action(self):
The latest Action type that was completed in the Exadata Fleet Update Cycle.
No value would indicate that the Cycle has not completed any Action yet.
- Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -472,7 +570,7 @@ def last_completed_action(self, last_completed_action):
:param last_completed_action: The last_completed_action of this FsuCycleSummary.
:type: str
"""
- allowed_values = ["STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"]
+ allowed_values = ["STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"]
if not value_allowed_none_or_none_sentinel(last_completed_action, allowed_values):
last_completed_action = 'UNKNOWN_ENUM_VALUE'
self._last_completed_action = last_completed_action
diff --git a/src/oci/fleet_software_update/models/fsu_job.py b/src/oci/fleet_software_update/models/fsu_job.py
index 48befe75fd..95c98dd479 100644
--- a/src/oci/fleet_software_update/models/fsu_job.py
+++ b/src/oci/fleet_software_update/models/fsu_job.py
@@ -31,6 +31,10 @@ class FsuJob(object):
#: This constant has a value of "ROLLBACK_AND_REMOVE_TARGET"
TYPE_ROLLBACK_AND_REMOVE_TARGET = "ROLLBACK_AND_REMOVE_TARGET"
+ #: A constant which can be used with the type property of a FsuJob.
+ #: This constant has a value of "ROLLBACK_MAINTENANCE_CYCLE"
+ TYPE_ROLLBACK_MAINTENANCE_CYCLE = "ROLLBACK_MAINTENANCE_CYCLE"
+
#: A constant which can be used with the type property of a FsuJob.
#: This constant has a value of "CLEANUP"
TYPE_CLEANUP = "CLEANUP"
@@ -81,6 +85,7 @@ def __init__(self, **kwargs):
to a service operations then you should favor using a subclass over the base class:
* :class:`~oci.fleet_software_update.models.ApplyFsuJob`
+ * :class:`~oci.fleet_software_update.models.RollbackCycleFsuJob`
* :class:`~oci.fleet_software_update.models.StageFsuJob`
* :class:`~oci.fleet_software_update.models.PrecheckFsuJob`
* :class:`~oci.fleet_software_update.models.RollbackFsuJob`
@@ -98,7 +103,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this FsuJob.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type type: str
@@ -216,6 +221,9 @@ def get_subtype(object_dictionary):
if type == 'APPLY':
return 'ApplyFsuJob'
+ if type == 'ROLLBACK_MAINTENANCE_CYCLE':
+ return 'RollbackCycleFsuJob'
+
if type == 'STAGE':
return 'StageFsuJob'
@@ -284,7 +292,7 @@ def type(self):
**[Required]** Gets the type of this FsuJob.
Exadata Fleet Update Job type.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -303,7 +311,7 @@ def type(self, type):
:param type: The type of this FsuJob.
:type: str
"""
- allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"]
+ allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"]
if not value_allowed_none_or_none_sentinel(type, allowed_values):
type = 'UNKNOWN_ENUM_VALUE'
self._type = type
diff --git a/src/oci/fleet_software_update/models/fsu_job_summary.py b/src/oci/fleet_software_update/models/fsu_job_summary.py
index a4a00f5797..9af7543d93 100644
--- a/src/oci/fleet_software_update/models/fsu_job_summary.py
+++ b/src/oci/fleet_software_update/models/fsu_job_summary.py
@@ -31,6 +31,10 @@ class FsuJobSummary(object):
#: This constant has a value of "ROLLBACK_AND_REMOVE_TARGET"
TYPE_ROLLBACK_AND_REMOVE_TARGET = "ROLLBACK_AND_REMOVE_TARGET"
+ #: A constant which can be used with the type property of a FsuJobSummary.
+ #: This constant has a value of "ROLLBACK_MAINTENANCE_CYCLE"
+ TYPE_ROLLBACK_MAINTENANCE_CYCLE = "ROLLBACK_MAINTENANCE_CYCLE"
+
#: A constant which can be used with the type property of a FsuJobSummary.
#: This constant has a value of "CLEANUP"
TYPE_CLEANUP = "CLEANUP"
@@ -83,6 +87,7 @@ def __init__(self, **kwargs):
* :class:`~oci.fleet_software_update.models.StageFsuJobSummary`
* :class:`~oci.fleet_software_update.models.PrecheckFsuJobSummary`
* :class:`~oci.fleet_software_update.models.ApplyFsuJobSummary`
+ * :class:`~oci.fleet_software_update.models.RollbackCycleFsuJobSummary`
* :class:`~oci.fleet_software_update.models.CleanupFsuJobSummary`
* :class:`~oci.fleet_software_update.models.RollbackFsuJobSummary`
@@ -98,7 +103,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this FsuJobSummary.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type type: str
@@ -222,6 +227,9 @@ def get_subtype(object_dictionary):
if type == 'APPLY':
return 'ApplyFsuJobSummary'
+ if type == 'ROLLBACK_MAINTENANCE_CYCLE':
+ return 'RollbackCycleFsuJobSummary'
+
if type == 'CLEANUP':
return 'CleanupFsuJobSummary'
@@ -284,7 +292,7 @@ def type(self):
**[Required]** Gets the type of this FsuJobSummary.
Exadata Fleet Update Job type.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -303,7 +311,7 @@ def type(self, type):
:param type: The type of this FsuJobSummary.
:type: str
"""
- allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"]
+ allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"]
if not value_allowed_none_or_none_sentinel(type, allowed_values):
type = 'UNKNOWN_ENUM_VALUE'
self._type = type
diff --git a/src/oci/fleet_software_update/models/gi_collection.py b/src/oci/fleet_software_update/models/gi_collection.py
index f816cb9457..78faaf0bfd 100644
--- a/src/oci/fleet_software_update/models/gi_collection.py
+++ b/src/oci/fleet_software_update/models/gi_collection.py
@@ -83,6 +83,10 @@ def __init__(self, **kwargs):
The value to assign to the lifecycle_details property of this GiCollection.
:type lifecycle_details: str
+ :param last_completed_fsu_cycle_id:
+ The value to assign to the last_completed_fsu_cycle_id property of this GiCollection.
+ :type last_completed_fsu_cycle_id: str
+
:param freeform_tags:
The value to assign to the freeform_tags property of this GiCollection.
:type freeform_tags: dict(str, str)
@@ -118,6 +122,7 @@ def __init__(self, **kwargs):
'time_updated': 'datetime',
'lifecycle_state': 'str',
'lifecycle_details': 'str',
+ 'last_completed_fsu_cycle_id': 'str',
'freeform_tags': 'dict(str, str)',
'defined_tags': 'dict(str, dict(str, object))',
'system_tags': 'dict(str, dict(str, object))',
@@ -137,6 +142,7 @@ def __init__(self, **kwargs):
'time_updated': 'timeUpdated',
'lifecycle_state': 'lifecycleState',
'lifecycle_details': 'lifecycleDetails',
+ 'last_completed_fsu_cycle_id': 'lastCompletedFsuCycleId',
'freeform_tags': 'freeformTags',
'defined_tags': 'definedTags',
'system_tags': 'systemTags',
@@ -155,6 +161,7 @@ def __init__(self, **kwargs):
self._time_updated = None
self._lifecycle_state = None
self._lifecycle_details = None
+ self._last_completed_fsu_cycle_id = None
self._freeform_tags = None
self._defined_tags = None
self._system_tags = None
diff --git a/src/oci/fleet_software_update/models/gi_fsu_collection_summary.py b/src/oci/fleet_software_update/models/gi_fsu_collection_summary.py
index 1a30dfdb65..eb5ec85599 100644
--- a/src/oci/fleet_software_update/models/gi_fsu_collection_summary.py
+++ b/src/oci/fleet_software_update/models/gi_fsu_collection_summary.py
@@ -83,6 +83,10 @@ def __init__(self, **kwargs):
The value to assign to the lifecycle_details property of this GiFsuCollectionSummary.
:type lifecycle_details: str
+ :param last_completed_fsu_cycle_id:
+ The value to assign to the last_completed_fsu_cycle_id property of this GiFsuCollectionSummary.
+ :type last_completed_fsu_cycle_id: str
+
:param freeform_tags:
The value to assign to the freeform_tags property of this GiFsuCollectionSummary.
:type freeform_tags: dict(str, str)
@@ -114,6 +118,7 @@ def __init__(self, **kwargs):
'time_updated': 'datetime',
'lifecycle_state': 'str',
'lifecycle_details': 'str',
+ 'last_completed_fsu_cycle_id': 'str',
'freeform_tags': 'dict(str, str)',
'defined_tags': 'dict(str, dict(str, object))',
'system_tags': 'dict(str, dict(str, object))',
@@ -132,6 +137,7 @@ def __init__(self, **kwargs):
'time_updated': 'timeUpdated',
'lifecycle_state': 'lifecycleState',
'lifecycle_details': 'lifecycleDetails',
+ 'last_completed_fsu_cycle_id': 'lastCompletedFsuCycleId',
'freeform_tags': 'freeformTags',
'defined_tags': 'definedTags',
'system_tags': 'systemTags',
@@ -149,6 +155,7 @@ def __init__(self, **kwargs):
self._time_updated = None
self._lifecycle_state = None
self._lifecycle_details = None
+ self._last_completed_fsu_cycle_id = None
self._freeform_tags = None
self._defined_tags = None
self._system_tags = None
diff --git a/src/oci/fleet_software_update/models/next_action_to_execute_details.py b/src/oci/fleet_software_update/models/next_action_to_execute_details.py
index 2b33fe3ecc..4e48d6a835 100644
--- a/src/oci/fleet_software_update/models/next_action_to_execute_details.py
+++ b/src/oci/fleet_software_update/models/next_action_to_execute_details.py
@@ -39,6 +39,10 @@ class NextActionToExecuteDetails(object):
#: This constant has a value of "CLEANUP"
TYPE_CLEANUP = "CLEANUP"
+ #: A constant which can be used with the type property of a NextActionToExecuteDetails.
+ #: This constant has a value of "ROLLBACK_MAINTENANCE_CYCLE"
+ TYPE_ROLLBACK_MAINTENANCE_CYCLE = "ROLLBACK_MAINTENANCE_CYCLE"
+
def __init__(self, **kwargs):
"""
Initializes a new NextActionToExecuteDetails object with values from keyword arguments.
@@ -46,7 +50,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this NextActionToExecuteDetails.
- Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type type: str
@@ -74,7 +78,7 @@ def type(self):
**[Required]** Gets the type of this NextActionToExecuteDetails.
Type of Exadata Fleet Update Action
- Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -93,7 +97,7 @@ def type(self, type):
:param type: The type of this NextActionToExecuteDetails.
:type: str
"""
- allowed_values = ["STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"]
+ allowed_values = ["STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"]
if not value_allowed_none_or_none_sentinel(type, allowed_values):
type = 'UNKNOWN_ENUM_VALUE'
self._type = type
diff --git a/src/oci/fleet_software_update/models/patch_fsu_cycle.py b/src/oci/fleet_software_update/models/patch_fsu_cycle.py
index 19ddf3967c..e723e34886 100644
--- a/src/oci/fleet_software_update/models/patch_fsu_cycle.py
+++ b/src/oci/fleet_software_update/models/patch_fsu_cycle.py
@@ -55,9 +55,18 @@ def __init__(self, **kwargs):
The value to assign to the next_action_to_execute property of this PatchFsuCycle.
:type next_action_to_execute: list[oci.fleet_software_update.models.NextActionToExecuteDetails]
+ :param last_completed_action_id:
+ The value to assign to the last_completed_action_id property of this PatchFsuCycle.
+ :type last_completed_action_id: str
+
+ :param rollback_cycle_state:
+ The value to assign to the rollback_cycle_state property of this PatchFsuCycle.
+ Allowed values for this property are: "ABLE_TO_EXECUTE", "IN_PROGRESS", "FAILED", "NEEDS_ATTENTION", "SUCCEEDED"
+ :type rollback_cycle_state: str
+
:param last_completed_action:
The value to assign to the last_completed_action property of this PatchFsuCycle.
- Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK_STAGE", "PRECHECK_APPLY", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type last_completed_action: str
:param goal_version_details:
@@ -139,6 +148,8 @@ def __init__(self, **kwargs):
'collection_type': 'str',
'executing_fsu_action_id': 'str',
'next_action_to_execute': 'list[NextActionToExecuteDetails]',
+ 'last_completed_action_id': 'str',
+ 'rollback_cycle_state': 'str',
'last_completed_action': 'str',
'goal_version_details': 'FsuGoalVersionDetails',
'batching_strategy': 'BatchingStrategyDetails',
@@ -168,6 +179,8 @@ def __init__(self, **kwargs):
'collection_type': 'collectionType',
'executing_fsu_action_id': 'executingFsuActionId',
'next_action_to_execute': 'nextActionToExecute',
+ 'last_completed_action_id': 'lastCompletedActionId',
+ 'rollback_cycle_state': 'rollbackCycleState',
'last_completed_action': 'lastCompletedAction',
'goal_version_details': 'goalVersionDetails',
'batching_strategy': 'batchingStrategy',
@@ -196,6 +209,8 @@ def __init__(self, **kwargs):
self._collection_type = None
self._executing_fsu_action_id = None
self._next_action_to_execute = None
+ self._last_completed_action_id = None
+ self._rollback_cycle_state = None
self._last_completed_action = None
self._goal_version_details = None
self._batching_strategy = None
diff --git a/src/oci/fleet_software_update/models/precheck_action.py b/src/oci/fleet_software_update/models/precheck_action.py
index e3d0989c79..920786b7ae 100644
--- a/src/oci/fleet_software_update/models/precheck_action.py
+++ b/src/oci/fleet_software_update/models/precheck_action.py
@@ -35,7 +35,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this PrecheckAction.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param time_created:
diff --git a/src/oci/fleet_software_update/models/precheck_action_summary.py b/src/oci/fleet_software_update/models/precheck_action_summary.py
index 951963c5c7..d8e69aedfa 100644
--- a/src/oci/fleet_software_update/models/precheck_action_summary.py
+++ b/src/oci/fleet_software_update/models/precheck_action_summary.py
@@ -35,7 +35,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this PrecheckActionSummary.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param time_created:
diff --git a/src/oci/fleet_software_update/models/precheck_fsu_job.py b/src/oci/fleet_software_update/models/precheck_fsu_job.py
index 0714b362e6..90ef2bcb65 100644
--- a/src/oci/fleet_software_update/models/precheck_fsu_job.py
+++ b/src/oci/fleet_software_update/models/precheck_fsu_job.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this PrecheckFsuJob.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"
:type type: str
:param compartment_id:
diff --git a/src/oci/fleet_software_update/models/precheck_fsu_job_summary.py b/src/oci/fleet_software_update/models/precheck_fsu_job_summary.py
index ea25976b77..3a777c6a33 100644
--- a/src/oci/fleet_software_update/models/precheck_fsu_job_summary.py
+++ b/src/oci/fleet_software_update/models/precheck_fsu_job_summary.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this PrecheckFsuJobSummary.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"
:type type: str
:param compartment_id:
diff --git a/src/oci/fleet_software_update/models/rollback_action.py b/src/oci/fleet_software_update/models/rollback_action.py
index 8ca3361b2c..6aae701933 100644
--- a/src/oci/fleet_software_update/models/rollback_action.py
+++ b/src/oci/fleet_software_update/models/rollback_action.py
@@ -36,7 +36,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this RollbackAction.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param time_created:
diff --git a/src/oci/fleet_software_update/models/rollback_action_summary.py b/src/oci/fleet_software_update/models/rollback_action_summary.py
index 26f324cdf5..23e173334f 100644
--- a/src/oci/fleet_software_update/models/rollback_action_summary.py
+++ b/src/oci/fleet_software_update/models/rollback_action_summary.py
@@ -35,7 +35,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this RollbackActionSummary.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param time_created:
diff --git a/src/oci/fleet_software_update/models/rollback_cycle_action.py b/src/oci/fleet_software_update/models/rollback_cycle_action.py
new file mode 100644
index 0000000000..80165320dd
--- /dev/null
+++ b/src/oci/fleet_software_update/models/rollback_cycle_action.py
@@ -0,0 +1,226 @@
+# 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: 20220528
+
+from .fsu_action import FsuAction
+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 RollbackCycleAction(FsuAction):
+ """
+ Rollback Cycle Exadata Fleet Update Action details.
+ This will rollback all the targets in the maintenance cycle with the Collection in place.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new RollbackCycleAction object with values from keyword arguments. The default value of the :py:attr:`~oci.fleet_software_update.models.RollbackCycleAction.type` attribute
+ of this class is ``ROLLBACK_MAINTENANCE_CYCLE`` and it should not be changed.
+ 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 RollbackCycleAction.
+ :type id: str
+
+ :param display_name:
+ The value to assign to the display_name property of this RollbackCycleAction.
+ :type display_name: str
+
+ :param compartment_id:
+ The value to assign to the compartment_id property of this RollbackCycleAction.
+ :type compartment_id: str
+
+ :param type:
+ The value to assign to the type property of this RollbackCycleAction.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
+ :type type: str
+
+ :param time_created:
+ The value to assign to the time_created property of this RollbackCycleAction.
+ :type time_created: datetime
+
+ :param time_started:
+ The value to assign to the time_started property of this RollbackCycleAction.
+ :type time_started: datetime
+
+ :param time_finished:
+ The value to assign to the time_finished property of this RollbackCycleAction.
+ :type time_finished: datetime
+
+ :param time_updated:
+ The value to assign to the time_updated property of this RollbackCycleAction.
+ :type time_updated: datetime
+
+ :param lifecycle_state:
+ The value to assign to the lifecycle_state property of this RollbackCycleAction.
+ Allowed values for this property are: "ACCEPTED", "IN_PROGRESS", "WAITING", "UPDATING", "FAILED", "NEEDS_ATTENTION", "SUCCEEDED", "CANCELING", "CANCELED", "UNKNOWN", "DELETING", "DELETED"
+ :type lifecycle_state: str
+
+ :param lifecycle_details:
+ The value to assign to the lifecycle_details property of this RollbackCycleAction.
+ :type lifecycle_details: str
+
+ :param freeform_tags:
+ The value to assign to the freeform_tags property of this RollbackCycleAction.
+ :type freeform_tags: dict(str, str)
+
+ :param defined_tags:
+ The value to assign to the defined_tags property of this RollbackCycleAction.
+ :type defined_tags: dict(str, dict(str, object))
+
+ :param system_tags:
+ The value to assign to the system_tags property of this RollbackCycleAction.
+ :type system_tags: dict(str, dict(str, object))
+
+ :param fsu_cycle_id:
+ The value to assign to the fsu_cycle_id property of this RollbackCycleAction.
+ :type fsu_cycle_id: str
+
+ :param related_fsu_action_id:
+ The value to assign to the related_fsu_action_id property of this RollbackCycleAction.
+ :type related_fsu_action_id: str
+
+ :param progress:
+ The value to assign to the progress property of this RollbackCycleAction.
+ :type progress: oci.fleet_software_update.models.FsuActionProgressDetails
+
+ """
+ self.swagger_types = {
+ 'id': 'str',
+ 'display_name': 'str',
+ 'compartment_id': 'str',
+ 'type': 'str',
+ 'time_created': 'datetime',
+ 'time_started': 'datetime',
+ 'time_finished': '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))',
+ 'fsu_cycle_id': 'str',
+ 'related_fsu_action_id': 'str',
+ 'progress': 'FsuActionProgressDetails'
+ }
+
+ self.attribute_map = {
+ 'id': 'id',
+ 'display_name': 'displayName',
+ 'compartment_id': 'compartmentId',
+ 'type': 'type',
+ 'time_created': 'timeCreated',
+ 'time_started': 'timeStarted',
+ 'time_finished': 'timeFinished',
+ 'time_updated': 'timeUpdated',
+ 'lifecycle_state': 'lifecycleState',
+ 'lifecycle_details': 'lifecycleDetails',
+ 'freeform_tags': 'freeformTags',
+ 'defined_tags': 'definedTags',
+ 'system_tags': 'systemTags',
+ 'fsu_cycle_id': 'fsuCycleId',
+ 'related_fsu_action_id': 'relatedFsuActionId',
+ 'progress': 'progress'
+ }
+
+ self._id = None
+ self._display_name = None
+ self._compartment_id = None
+ self._type = None
+ self._time_created = None
+ self._time_started = None
+ self._time_finished = 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
+ self._fsu_cycle_id = None
+ self._related_fsu_action_id = None
+ self._progress = None
+ self._type = 'ROLLBACK_MAINTENANCE_CYCLE'
+
+ @property
+ def fsu_cycle_id(self):
+ """
+ **[Required]** Gets the fsu_cycle_id of this RollbackCycleAction.
+ OCID identifier for the Exadata Fleet Update Cycle the Action will be part of.
+
+
+ :return: The fsu_cycle_id of this RollbackCycleAction.
+ :rtype: str
+ """
+ return self._fsu_cycle_id
+
+ @fsu_cycle_id.setter
+ def fsu_cycle_id(self, fsu_cycle_id):
+ """
+ Sets the fsu_cycle_id of this RollbackCycleAction.
+ OCID identifier for the Exadata Fleet Update Cycle the Action will be part of.
+
+
+ :param fsu_cycle_id: The fsu_cycle_id of this RollbackCycleAction.
+ :type: str
+ """
+ self._fsu_cycle_id = fsu_cycle_id
+
+ @property
+ def related_fsu_action_id(self):
+ """
+ Gets the related_fsu_action_id of this RollbackCycleAction.
+ OCID identifier for the Exadata Fleet Update Action.
+
+
+ :return: The related_fsu_action_id of this RollbackCycleAction.
+ :rtype: str
+ """
+ return self._related_fsu_action_id
+
+ @related_fsu_action_id.setter
+ def related_fsu_action_id(self, related_fsu_action_id):
+ """
+ Sets the related_fsu_action_id of this RollbackCycleAction.
+ OCID identifier for the Exadata Fleet Update Action.
+
+
+ :param related_fsu_action_id: The related_fsu_action_id of this RollbackCycleAction.
+ :type: str
+ """
+ self._related_fsu_action_id = related_fsu_action_id
+
+ @property
+ def progress(self):
+ """
+ Gets the progress of this RollbackCycleAction.
+
+ :return: The progress of this RollbackCycleAction.
+ :rtype: oci.fleet_software_update.models.FsuActionProgressDetails
+ """
+ return self._progress
+
+ @progress.setter
+ def progress(self, progress):
+ """
+ Sets the progress of this RollbackCycleAction.
+
+ :param progress: The progress of this RollbackCycleAction.
+ :type: oci.fleet_software_update.models.FsuActionProgressDetails
+ """
+ self._progress = progress
+
+ 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/fleet_software_update/models/rollback_cycle_action_summary.py b/src/oci/fleet_software_update/models/rollback_cycle_action_summary.py
new file mode 100644
index 0000000000..e31066bc76
--- /dev/null
+++ b/src/oci/fleet_software_update/models/rollback_cycle_action_summary.py
@@ -0,0 +1,225 @@
+# 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: 20220528
+
+from .fsu_action_summary import FsuActionSummary
+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 RollbackCycleActionSummary(FsuActionSummary):
+ """
+ Rollback Cycle Exadata Fleet Update Action summary.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new RollbackCycleActionSummary object with values from keyword arguments. The default value of the :py:attr:`~oci.fleet_software_update.models.RollbackCycleActionSummary.type` attribute
+ of this class is ``ROLLBACK_MAINTENANCE_CYCLE`` and it should not be changed.
+ 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 RollbackCycleActionSummary.
+ :type id: str
+
+ :param display_name:
+ The value to assign to the display_name property of this RollbackCycleActionSummary.
+ :type display_name: str
+
+ :param compartment_id:
+ The value to assign to the compartment_id property of this RollbackCycleActionSummary.
+ :type compartment_id: str
+
+ :param type:
+ The value to assign to the type property of this RollbackCycleActionSummary.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
+ :type type: str
+
+ :param time_created:
+ The value to assign to the time_created property of this RollbackCycleActionSummary.
+ :type time_created: datetime
+
+ :param time_started:
+ The value to assign to the time_started property of this RollbackCycleActionSummary.
+ :type time_started: datetime
+
+ :param time_finished:
+ The value to assign to the time_finished property of this RollbackCycleActionSummary.
+ :type time_finished: datetime
+
+ :param time_updated:
+ The value to assign to the time_updated property of this RollbackCycleActionSummary.
+ :type time_updated: datetime
+
+ :param lifecycle_state:
+ The value to assign to the lifecycle_state property of this RollbackCycleActionSummary.
+ Allowed values for this property are: "ACCEPTED", "IN_PROGRESS", "WAITING", "UPDATING", "FAILED", "NEEDS_ATTENTION", "SUCCEEDED", "CANCELING", "CANCELED", "UNKNOWN", "DELETING", "DELETED"
+ :type lifecycle_state: str
+
+ :param lifecycle_details:
+ The value to assign to the lifecycle_details property of this RollbackCycleActionSummary.
+ :type lifecycle_details: str
+
+ :param freeform_tags:
+ The value to assign to the freeform_tags property of this RollbackCycleActionSummary.
+ :type freeform_tags: dict(str, str)
+
+ :param defined_tags:
+ The value to assign to the defined_tags property of this RollbackCycleActionSummary.
+ :type defined_tags: dict(str, dict(str, object))
+
+ :param system_tags:
+ The value to assign to the system_tags property of this RollbackCycleActionSummary.
+ :type system_tags: dict(str, dict(str, object))
+
+ :param fsu_cycle_id:
+ The value to assign to the fsu_cycle_id property of this RollbackCycleActionSummary.
+ :type fsu_cycle_id: str
+
+ :param related_fsu_action_id:
+ The value to assign to the related_fsu_action_id property of this RollbackCycleActionSummary.
+ :type related_fsu_action_id: str
+
+ :param progress:
+ The value to assign to the progress property of this RollbackCycleActionSummary.
+ :type progress: oci.fleet_software_update.models.FsuActionProgressDetails
+
+ """
+ self.swagger_types = {
+ 'id': 'str',
+ 'display_name': 'str',
+ 'compartment_id': 'str',
+ 'type': 'str',
+ 'time_created': 'datetime',
+ 'time_started': 'datetime',
+ 'time_finished': '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))',
+ 'fsu_cycle_id': 'str',
+ 'related_fsu_action_id': 'str',
+ 'progress': 'FsuActionProgressDetails'
+ }
+
+ self.attribute_map = {
+ 'id': 'id',
+ 'display_name': 'displayName',
+ 'compartment_id': 'compartmentId',
+ 'type': 'type',
+ 'time_created': 'timeCreated',
+ 'time_started': 'timeStarted',
+ 'time_finished': 'timeFinished',
+ 'time_updated': 'timeUpdated',
+ 'lifecycle_state': 'lifecycleState',
+ 'lifecycle_details': 'lifecycleDetails',
+ 'freeform_tags': 'freeformTags',
+ 'defined_tags': 'definedTags',
+ 'system_tags': 'systemTags',
+ 'fsu_cycle_id': 'fsuCycleId',
+ 'related_fsu_action_id': 'relatedFsuActionId',
+ 'progress': 'progress'
+ }
+
+ self._id = None
+ self._display_name = None
+ self._compartment_id = None
+ self._type = None
+ self._time_created = None
+ self._time_started = None
+ self._time_finished = 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
+ self._fsu_cycle_id = None
+ self._related_fsu_action_id = None
+ self._progress = None
+ self._type = 'ROLLBACK_MAINTENANCE_CYCLE'
+
+ @property
+ def fsu_cycle_id(self):
+ """
+ **[Required]** Gets the fsu_cycle_id of this RollbackCycleActionSummary.
+ OCID identifier for the Exadata Fleet Update Cycle the Action will be part of.
+
+
+ :return: The fsu_cycle_id of this RollbackCycleActionSummary.
+ :rtype: str
+ """
+ return self._fsu_cycle_id
+
+ @fsu_cycle_id.setter
+ def fsu_cycle_id(self, fsu_cycle_id):
+ """
+ Sets the fsu_cycle_id of this RollbackCycleActionSummary.
+ OCID identifier for the Exadata Fleet Update Cycle the Action will be part of.
+
+
+ :param fsu_cycle_id: The fsu_cycle_id of this RollbackCycleActionSummary.
+ :type: str
+ """
+ self._fsu_cycle_id = fsu_cycle_id
+
+ @property
+ def related_fsu_action_id(self):
+ """
+ Gets the related_fsu_action_id of this RollbackCycleActionSummary.
+ OCID identifier for the Exadata Fleet Update Action.
+
+
+ :return: The related_fsu_action_id of this RollbackCycleActionSummary.
+ :rtype: str
+ """
+ return self._related_fsu_action_id
+
+ @related_fsu_action_id.setter
+ def related_fsu_action_id(self, related_fsu_action_id):
+ """
+ Sets the related_fsu_action_id of this RollbackCycleActionSummary.
+ OCID identifier for the Exadata Fleet Update Action.
+
+
+ :param related_fsu_action_id: The related_fsu_action_id of this RollbackCycleActionSummary.
+ :type: str
+ """
+ self._related_fsu_action_id = related_fsu_action_id
+
+ @property
+ def progress(self):
+ """
+ Gets the progress of this RollbackCycleActionSummary.
+
+ :return: The progress of this RollbackCycleActionSummary.
+ :rtype: oci.fleet_software_update.models.FsuActionProgressDetails
+ """
+ return self._progress
+
+ @progress.setter
+ def progress(self, progress):
+ """
+ Sets the progress of this RollbackCycleActionSummary.
+
+ :param progress: The progress of this RollbackCycleActionSummary.
+ :type: oci.fleet_software_update.models.FsuActionProgressDetails
+ """
+ self._progress = progress
+
+ 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/fleet_software_update/models/rollback_cycle_fsu_job.py b/src/oci/fleet_software_update/models/rollback_cycle_fsu_job.py
new file mode 100644
index 0000000000..a45cd83748
--- /dev/null
+++ b/src/oci/fleet_software_update/models/rollback_cycle_fsu_job.py
@@ -0,0 +1,278 @@
+# 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: 20220528
+
+from .fsu_job import FsuJob
+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 RollbackCycleFsuJob(FsuJob):
+ """
+ Rollback Maintenance Cycle Exadata Fleet Update Job resource.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new RollbackCycleFsuJob object with values from keyword arguments. The default value of the :py:attr:`~oci.fleet_software_update.models.RollbackCycleFsuJob.type` attribute
+ of this class is ``ROLLBACK_MAINTENANCE_CYCLE`` and it should not be changed.
+ 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 RollbackCycleFsuJob.
+ :type id: str
+
+ :param display_name:
+ The value to assign to the display_name property of this RollbackCycleFsuJob.
+ :type display_name: str
+
+ :param type:
+ The value to assign to the type property of this RollbackCycleFsuJob.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"
+ :type type: str
+
+ :param compartment_id:
+ The value to assign to the compartment_id property of this RollbackCycleFsuJob.
+ :type compartment_id: str
+
+ :param fsu_action_id:
+ The value to assign to the fsu_action_id property of this RollbackCycleFsuJob.
+ :type fsu_action_id: str
+
+ :param progress:
+ The value to assign to the progress property of this RollbackCycleFsuJob.
+ :type progress: oci.fleet_software_update.models.JobProgressDetails
+
+ :param time_created:
+ The value to assign to the time_created property of this RollbackCycleFsuJob.
+ :type time_created: datetime
+
+ :param time_started:
+ The value to assign to the time_started property of this RollbackCycleFsuJob.
+ :type time_started: datetime
+
+ :param time_updated:
+ The value to assign to the time_updated property of this RollbackCycleFsuJob.
+ :type time_updated: datetime
+
+ :param time_finished:
+ The value to assign to the time_finished property of this RollbackCycleFsuJob.
+ :type time_finished: datetime
+
+ :param lifecycle_state:
+ The value to assign to the lifecycle_state property of this RollbackCycleFsuJob.
+ Allowed values for this property are: "ACCEPTED", "IN_PROGRESS", "UNKNOWN", "TERMINATED", "FAILED", "NEEDS_ATTENTION", "SUCCEEDED", "WAITING", "CANCELING", "CANCELED"
+ :type lifecycle_state: str
+
+ :param lifecycle_details:
+ The value to assign to the lifecycle_details property of this RollbackCycleFsuJob.
+ :type lifecycle_details: str
+
+ :param freeform_tags:
+ The value to assign to the freeform_tags property of this RollbackCycleFsuJob.
+ :type freeform_tags: dict(str, str)
+
+ :param defined_tags:
+ The value to assign to the defined_tags property of this RollbackCycleFsuJob.
+ :type defined_tags: dict(str, dict(str, object))
+
+ :param system_tags:
+ The value to assign to the system_tags property of this RollbackCycleFsuJob.
+ :type system_tags: dict(str, dict(str, object))
+
+ :param fsu_collection_id:
+ The value to assign to the fsu_collection_id property of this RollbackCycleFsuJob.
+ :type fsu_collection_id: str
+
+ :param fsu_cycle_id:
+ The value to assign to the fsu_cycle_id property of this RollbackCycleFsuJob.
+ :type fsu_cycle_id: str
+
+ :param target_id:
+ The value to assign to the target_id property of this RollbackCycleFsuJob.
+ :type target_id: str
+
+ :param schedule:
+ The value to assign to the schedule property of this RollbackCycleFsuJob.
+ :type schedule: oci.fleet_software_update.models.ScheduleDetails
+
+ """
+ self.swagger_types = {
+ 'id': 'str',
+ 'display_name': 'str',
+ 'type': 'str',
+ 'compartment_id': 'str',
+ 'fsu_action_id': 'str',
+ 'progress': 'JobProgressDetails',
+ 'time_created': 'datetime',
+ 'time_started': 'datetime',
+ 'time_updated': 'datetime',
+ 'time_finished': '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))',
+ 'fsu_collection_id': 'str',
+ 'fsu_cycle_id': 'str',
+ 'target_id': 'str',
+ 'schedule': 'ScheduleDetails'
+ }
+
+ self.attribute_map = {
+ 'id': 'id',
+ 'display_name': 'displayName',
+ 'type': 'type',
+ 'compartment_id': 'compartmentId',
+ 'fsu_action_id': 'fsuActionId',
+ 'progress': 'progress',
+ 'time_created': 'timeCreated',
+ 'time_started': 'timeStarted',
+ 'time_updated': 'timeUpdated',
+ 'time_finished': 'timeFinished',
+ 'lifecycle_state': 'lifecycleState',
+ 'lifecycle_details': 'lifecycleDetails',
+ 'freeform_tags': 'freeformTags',
+ 'defined_tags': 'definedTags',
+ 'system_tags': 'systemTags',
+ 'fsu_collection_id': 'fsuCollectionId',
+ 'fsu_cycle_id': 'fsuCycleId',
+ 'target_id': 'targetId',
+ 'schedule': 'schedule'
+ }
+
+ self._id = None
+ self._display_name = None
+ self._type = None
+ self._compartment_id = None
+ self._fsu_action_id = None
+ self._progress = None
+ self._time_created = None
+ self._time_started = None
+ self._time_updated = None
+ self._time_finished = None
+ self._lifecycle_state = None
+ self._lifecycle_details = None
+ self._freeform_tags = None
+ self._defined_tags = None
+ self._system_tags = None
+ self._fsu_collection_id = None
+ self._fsu_cycle_id = None
+ self._target_id = None
+ self._schedule = None
+ self._type = 'ROLLBACK_MAINTENANCE_CYCLE'
+
+ @property
+ def fsu_collection_id(self):
+ """
+ **[Required]** Gets the fsu_collection_id of this RollbackCycleFsuJob.
+ The `OCID`__ of the Exadata Fleet Update Collection that the job is executing on.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :return: The fsu_collection_id of this RollbackCycleFsuJob.
+ :rtype: str
+ """
+ return self._fsu_collection_id
+
+ @fsu_collection_id.setter
+ def fsu_collection_id(self, fsu_collection_id):
+ """
+ Sets the fsu_collection_id of this RollbackCycleFsuJob.
+ The `OCID`__ of the Exadata Fleet Update Collection that the job is executing on.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :param fsu_collection_id: The fsu_collection_id of this RollbackCycleFsuJob.
+ :type: str
+ """
+ self._fsu_collection_id = fsu_collection_id
+
+ @property
+ def fsu_cycle_id(self):
+ """
+ **[Required]** Gets the fsu_cycle_id of this RollbackCycleFsuJob.
+ The `OCID`__ of the Exadata Fleet Update Cycle that this job is part of.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :return: The fsu_cycle_id of this RollbackCycleFsuJob.
+ :rtype: str
+ """
+ return self._fsu_cycle_id
+
+ @fsu_cycle_id.setter
+ def fsu_cycle_id(self, fsu_cycle_id):
+ """
+ Sets the fsu_cycle_id of this RollbackCycleFsuJob.
+ The `OCID`__ of the Exadata Fleet Update Cycle that this job is part of.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :param fsu_cycle_id: The fsu_cycle_id of this RollbackCycleFsuJob.
+ :type: str
+ """
+ self._fsu_cycle_id = fsu_cycle_id
+
+ @property
+ def target_id(self):
+ """
+ Gets the target_id of this RollbackCycleFsuJob.
+ OCID of Target resource on which the job is executing the action.
+
+
+ :return: The target_id of this RollbackCycleFsuJob.
+ :rtype: str
+ """
+ return self._target_id
+
+ @target_id.setter
+ def target_id(self, target_id):
+ """
+ Sets the target_id of this RollbackCycleFsuJob.
+ OCID of Target resource on which the job is executing the action.
+
+
+ :param target_id: The target_id of this RollbackCycleFsuJob.
+ :type: str
+ """
+ self._target_id = target_id
+
+ @property
+ def schedule(self):
+ """
+ Gets the schedule of this RollbackCycleFsuJob.
+
+ :return: The schedule of this RollbackCycleFsuJob.
+ :rtype: oci.fleet_software_update.models.ScheduleDetails
+ """
+ return self._schedule
+
+ @schedule.setter
+ def schedule(self, schedule):
+ """
+ Sets the schedule of this RollbackCycleFsuJob.
+
+ :param schedule: The schedule of this RollbackCycleFsuJob.
+ :type: oci.fleet_software_update.models.ScheduleDetails
+ """
+ self._schedule = schedule
+
+ 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/fleet_software_update/models/rollback_cycle_fsu_job_summary.py b/src/oci/fleet_software_update/models/rollback_cycle_fsu_job_summary.py
new file mode 100644
index 0000000000..b886e2ecfe
--- /dev/null
+++ b/src/oci/fleet_software_update/models/rollback_cycle_fsu_job_summary.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: 20220528
+
+from .fsu_job_summary import FsuJobSummary
+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 RollbackCycleFsuJobSummary(FsuJobSummary):
+ """
+ Summary of Rollback Cycle Targets Exadata Fleet Update Job resource.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new RollbackCycleFsuJobSummary object with values from keyword arguments. The default value of the :py:attr:`~oci.fleet_software_update.models.RollbackCycleFsuJobSummary.type` attribute
+ of this class is ``ROLLBACK_MAINTENANCE_CYCLE`` and it should not be changed.
+ 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 RollbackCycleFsuJobSummary.
+ :type id: str
+
+ :param display_name:
+ The value to assign to the display_name property of this RollbackCycleFsuJobSummary.
+ :type display_name: str
+
+ :param type:
+ The value to assign to the type property of this RollbackCycleFsuJobSummary.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"
+ :type type: str
+
+ :param compartment_id:
+ The value to assign to the compartment_id property of this RollbackCycleFsuJobSummary.
+ :type compartment_id: str
+
+ :param fsu_action_id:
+ The value to assign to the fsu_action_id property of this RollbackCycleFsuJobSummary.
+ :type fsu_action_id: str
+
+ :param progress:
+ The value to assign to the progress property of this RollbackCycleFsuJobSummary.
+ :type progress: oci.fleet_software_update.models.JobProgress
+
+ :param time_created:
+ The value to assign to the time_created property of this RollbackCycleFsuJobSummary.
+ :type time_created: datetime
+
+ :param time_started:
+ The value to assign to the time_started property of this RollbackCycleFsuJobSummary.
+ :type time_started: datetime
+
+ :param time_updated:
+ The value to assign to the time_updated property of this RollbackCycleFsuJobSummary.
+ :type time_updated: datetime
+
+ :param time_finished:
+ The value to assign to the time_finished property of this RollbackCycleFsuJobSummary.
+ :type time_finished: datetime
+
+ :param lifecycle_state:
+ The value to assign to the lifecycle_state property of this RollbackCycleFsuJobSummary.
+ Allowed values for this property are: "ACCEPTED", "IN_PROGRESS", "UNKNOWN", "TERMINATED", "FAILED", "NEEDS_ATTENTION", "SUCCEEDED", "WAITING", "CANCELING", "CANCELED"
+ :type lifecycle_state: str
+
+ :param lifecycle_details:
+ The value to assign to the lifecycle_details property of this RollbackCycleFsuJobSummary.
+ :type lifecycle_details: str
+
+ :param freeform_tags:
+ The value to assign to the freeform_tags property of this RollbackCycleFsuJobSummary.
+ :type freeform_tags: dict(str, str)
+
+ :param defined_tags:
+ The value to assign to the defined_tags property of this RollbackCycleFsuJobSummary.
+ :type defined_tags: dict(str, dict(str, object))
+
+ :param system_tags:
+ The value to assign to the system_tags property of this RollbackCycleFsuJobSummary.
+ :type system_tags: dict(str, dict(str, object))
+
+ :param fsu_collection_id:
+ The value to assign to the fsu_collection_id property of this RollbackCycleFsuJobSummary.
+ :type fsu_collection_id: str
+
+ :param fsu_cycle_id:
+ The value to assign to the fsu_cycle_id property of this RollbackCycleFsuJobSummary.
+ :type fsu_cycle_id: str
+
+ :param target_id:
+ The value to assign to the target_id property of this RollbackCycleFsuJobSummary.
+ :type target_id: str
+
+ """
+ self.swagger_types = {
+ 'id': 'str',
+ 'display_name': 'str',
+ 'type': 'str',
+ 'compartment_id': 'str',
+ 'fsu_action_id': 'str',
+ 'progress': 'JobProgress',
+ 'time_created': 'datetime',
+ 'time_started': 'datetime',
+ 'time_updated': 'datetime',
+ 'time_finished': '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))',
+ 'fsu_collection_id': 'str',
+ 'fsu_cycle_id': 'str',
+ 'target_id': 'str'
+ }
+
+ self.attribute_map = {
+ 'id': 'id',
+ 'display_name': 'displayName',
+ 'type': 'type',
+ 'compartment_id': 'compartmentId',
+ 'fsu_action_id': 'fsuActionId',
+ 'progress': 'progress',
+ 'time_created': 'timeCreated',
+ 'time_started': 'timeStarted',
+ 'time_updated': 'timeUpdated',
+ 'time_finished': 'timeFinished',
+ 'lifecycle_state': 'lifecycleState',
+ 'lifecycle_details': 'lifecycleDetails',
+ 'freeform_tags': 'freeformTags',
+ 'defined_tags': 'definedTags',
+ 'system_tags': 'systemTags',
+ 'fsu_collection_id': 'fsuCollectionId',
+ 'fsu_cycle_id': 'fsuCycleId',
+ 'target_id': 'targetId'
+ }
+
+ self._id = None
+ self._display_name = None
+ self._type = None
+ self._compartment_id = None
+ self._fsu_action_id = None
+ self._progress = None
+ self._time_created = None
+ self._time_started = None
+ self._time_updated = None
+ self._time_finished = None
+ self._lifecycle_state = None
+ self._lifecycle_details = None
+ self._freeform_tags = None
+ self._defined_tags = None
+ self._system_tags = None
+ self._fsu_collection_id = None
+ self._fsu_cycle_id = None
+ self._target_id = None
+ self._type = 'ROLLBACK_MAINTENANCE_CYCLE'
+
+ @property
+ def fsu_collection_id(self):
+ """
+ **[Required]** Gets the fsu_collection_id of this RollbackCycleFsuJobSummary.
+ The `OCID`__ of the Exadata Fleet Update Collection that the job is executing on.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :return: The fsu_collection_id of this RollbackCycleFsuJobSummary.
+ :rtype: str
+ """
+ return self._fsu_collection_id
+
+ @fsu_collection_id.setter
+ def fsu_collection_id(self, fsu_collection_id):
+ """
+ Sets the fsu_collection_id of this RollbackCycleFsuJobSummary.
+ The `OCID`__ of the Exadata Fleet Update Collection that the job is executing on.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :param fsu_collection_id: The fsu_collection_id of this RollbackCycleFsuJobSummary.
+ :type: str
+ """
+ self._fsu_collection_id = fsu_collection_id
+
+ @property
+ def fsu_cycle_id(self):
+ """
+ **[Required]** Gets the fsu_cycle_id of this RollbackCycleFsuJobSummary.
+ The `OCID`__ of the Exadata Fleet Update Cycle that this job is part of.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :return: The fsu_cycle_id of this RollbackCycleFsuJobSummary.
+ :rtype: str
+ """
+ return self._fsu_cycle_id
+
+ @fsu_cycle_id.setter
+ def fsu_cycle_id(self, fsu_cycle_id):
+ """
+ Sets the fsu_cycle_id of this RollbackCycleFsuJobSummary.
+ The `OCID`__ of the Exadata Fleet Update Cycle that this job is part of.
+
+ __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
+
+
+ :param fsu_cycle_id: The fsu_cycle_id of this RollbackCycleFsuJobSummary.
+ :type: str
+ """
+ self._fsu_cycle_id = fsu_cycle_id
+
+ @property
+ def target_id(self):
+ """
+ Gets the target_id of this RollbackCycleFsuJobSummary.
+ OCID of Target resource on which the job is executing the action.
+
+
+ :return: The target_id of this RollbackCycleFsuJobSummary.
+ :rtype: str
+ """
+ return self._target_id
+
+ @target_id.setter
+ def target_id(self, target_id):
+ """
+ Sets the target_id of this RollbackCycleFsuJobSummary.
+ OCID of Target resource on which the job is executing the action.
+
+
+ :param target_id: The target_id of this RollbackCycleFsuJobSummary.
+ :type: str
+ """
+ self._target_id = target_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/fleet_software_update/models/rollback_fsu_job.py b/src/oci/fleet_software_update/models/rollback_fsu_job.py
index 6e13eef748..0cc77e9267 100644
--- a/src/oci/fleet_software_update/models/rollback_fsu_job.py
+++ b/src/oci/fleet_software_update/models/rollback_fsu_job.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this RollbackFsuJob.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"
:type type: str
:param compartment_id:
diff --git a/src/oci/fleet_software_update/models/rollback_fsu_job_summary.py b/src/oci/fleet_software_update/models/rollback_fsu_job_summary.py
index 71b7f473e1..fe1582502b 100644
--- a/src/oci/fleet_software_update/models/rollback_fsu_job_summary.py
+++ b/src/oci/fleet_software_update/models/rollback_fsu_job_summary.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this RollbackFsuJobSummary.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"
:type type: str
:param compartment_id:
diff --git a/src/oci/fleet_software_update/models/stage_action.py b/src/oci/fleet_software_update/models/stage_action.py
index bf2c2f3243..f2822b2372 100644
--- a/src/oci/fleet_software_update/models/stage_action.py
+++ b/src/oci/fleet_software_update/models/stage_action.py
@@ -35,7 +35,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this StageAction.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param time_created:
diff --git a/src/oci/fleet_software_update/models/stage_action_summary.py b/src/oci/fleet_software_update/models/stage_action_summary.py
index 62b4d0954f..4d89d0c2eb 100644
--- a/src/oci/fleet_software_update/models/stage_action_summary.py
+++ b/src/oci/fleet_software_update/models/stage_action_summary.py
@@ -35,7 +35,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this StageActionSummary.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param time_created:
diff --git a/src/oci/fleet_software_update/models/stage_fsu_job.py b/src/oci/fleet_software_update/models/stage_fsu_job.py
index 208bda502b..527d49ba69 100644
--- a/src/oci/fleet_software_update/models/stage_fsu_job.py
+++ b/src/oci/fleet_software_update/models/stage_fsu_job.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this StageFsuJob.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"
:type type: str
:param compartment_id:
diff --git a/src/oci/fleet_software_update/models/stage_fsu_job_summary.py b/src/oci/fleet_software_update/models/stage_fsu_job_summary.py
index 4d686a0657..93800576ec 100644
--- a/src/oci/fleet_software_update/models/stage_fsu_job_summary.py
+++ b/src/oci/fleet_software_update/models/stage_fsu_job_summary.py
@@ -31,7 +31,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this StageFsuJobSummary.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "ROLLBACK_MAINTENANCE_CYCLE", "CLEANUP"
:type type: str
:param compartment_id:
diff --git a/src/oci/fleet_software_update/models/update_apply_action_details.py b/src/oci/fleet_software_update/models/update_apply_action_details.py
index ca7675e1fd..9a7c072fdf 100644
--- a/src/oci/fleet_software_update/models/update_apply_action_details.py
+++ b/src/oci/fleet_software_update/models/update_apply_action_details.py
@@ -23,7 +23,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this UpdateApplyActionDetails.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param display_name:
diff --git a/src/oci/fleet_software_update/models/update_cleanup_action_details.py b/src/oci/fleet_software_update/models/update_cleanup_action_details.py
index 4fb11a1eb9..1586bfb622 100644
--- a/src/oci/fleet_software_update/models/update_cleanup_action_details.py
+++ b/src/oci/fleet_software_update/models/update_cleanup_action_details.py
@@ -23,7 +23,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this UpdateCleanupActionDetails.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param display_name:
diff --git a/src/oci/fleet_software_update/models/update_fsu_action_details.py b/src/oci/fleet_software_update/models/update_fsu_action_details.py
index c057868e0c..ad39aab441 100644
--- a/src/oci/fleet_software_update/models/update_fsu_action_details.py
+++ b/src/oci/fleet_software_update/models/update_fsu_action_details.py
@@ -35,11 +35,16 @@ class UpdateFsuActionDetails(object):
#: This constant has a value of "CLEANUP"
TYPE_CLEANUP = "CLEANUP"
+ #: A constant which can be used with the type property of a UpdateFsuActionDetails.
+ #: This constant has a value of "ROLLBACK_MAINTENANCE_CYCLE"
+ TYPE_ROLLBACK_MAINTENANCE_CYCLE = "ROLLBACK_MAINTENANCE_CYCLE"
+
def __init__(self, **kwargs):
"""
Initializes a new UpdateFsuActionDetails 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.fleet_software_update.models.UpdateRollbackCycleActionDetails`
* :class:`~oci.fleet_software_update.models.UpdateStageActionDetails`
* :class:`~oci.fleet_software_update.models.UpdateApplyActionDetails`
* :class:`~oci.fleet_software_update.models.UpdateRollbackActionDetails`
@@ -50,7 +55,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this UpdateFsuActionDetails.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param display_name:
@@ -93,6 +98,9 @@ def get_subtype(object_dictionary):
"""
type = object_dictionary['type']
+ if type == 'ROLLBACK_MAINTENANCE_CYCLE':
+ return 'UpdateRollbackCycleActionDetails'
+
if type == 'STAGE':
return 'UpdateStageActionDetails'
@@ -117,7 +125,7 @@ def type(self):
Type of Exadata Fleet Update Action to update.
Specifying this option will not change the Action type.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:return: The type of this UpdateFsuActionDetails.
@@ -136,7 +144,7 @@ def type(self, type):
:param type: The type of this UpdateFsuActionDetails.
:type: str
"""
- allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"]
+ allowed_values = ["STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"]
if not value_allowed_none_or_none_sentinel(type, allowed_values):
raise ValueError(
f"Invalid value for `type`, must be None or one of {allowed_values}"
diff --git a/src/oci/fleet_software_update/models/update_precheck_action_details.py b/src/oci/fleet_software_update/models/update_precheck_action_details.py
index daf9f3ab4f..d9d17d4151 100644
--- a/src/oci/fleet_software_update/models/update_precheck_action_details.py
+++ b/src/oci/fleet_software_update/models/update_precheck_action_details.py
@@ -23,7 +23,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this UpdatePrecheckActionDetails.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param display_name:
diff --git a/src/oci/fleet_software_update/models/update_rollback_action_details.py b/src/oci/fleet_software_update/models/update_rollback_action_details.py
index 4c22856799..f81b237f62 100644
--- a/src/oci/fleet_software_update/models/update_rollback_action_details.py
+++ b/src/oci/fleet_software_update/models/update_rollback_action_details.py
@@ -23,7 +23,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this UpdateRollbackActionDetails.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param display_name:
diff --git a/src/oci/fleet_software_update/models/update_rollback_cycle_action_details.py b/src/oci/fleet_software_update/models/update_rollback_cycle_action_details.py
new file mode 100644
index 0000000000..7842bbc5f5
--- /dev/null
+++ b/src/oci/fleet_software_update/models/update_rollback_cycle_action_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: 20220528
+
+from .update_fsu_action_details import UpdateFsuActionDetails
+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 UpdateRollbackCycleActionDetails(UpdateFsuActionDetails):
+ """
+ Rollback Cycle Exadata Fleet Update Action update details.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new UpdateRollbackCycleActionDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.fleet_software_update.models.UpdateRollbackCycleActionDetails.type` attribute
+ of this class is ``ROLLBACK_MAINTENANCE_CYCLE`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param type:
+ The value to assign to the type property of this UpdateRollbackCycleActionDetails.
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
+ :type type: str
+
+ :param display_name:
+ The value to assign to the display_name property of this UpdateRollbackCycleActionDetails.
+ :type display_name: str
+
+ :param freeform_tags:
+ The value to assign to the freeform_tags property of this UpdateRollbackCycleActionDetails.
+ :type freeform_tags: dict(str, str)
+
+ :param defined_tags:
+ The value to assign to the defined_tags property of this UpdateRollbackCycleActionDetails.
+ :type defined_tags: dict(str, dict(str, object))
+
+ """
+ self.swagger_types = {
+ 'type': 'str',
+ 'display_name': 'str',
+ 'freeform_tags': 'dict(str, str)',
+ 'defined_tags': 'dict(str, dict(str, object))'
+ }
+
+ self.attribute_map = {
+ 'type': 'type',
+ 'display_name': 'displayName',
+ 'freeform_tags': 'freeformTags',
+ 'defined_tags': 'definedTags'
+ }
+
+ self._type = None
+ self._display_name = None
+ self._freeform_tags = None
+ self._defined_tags = None
+ self._type = 'ROLLBACK_MAINTENANCE_CYCLE'
+
+ 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/fleet_software_update/models/update_stage_action_details.py b/src/oci/fleet_software_update/models/update_stage_action_details.py
index bbba1d2475..004738f2fe 100644
--- a/src/oci/fleet_software_update/models/update_stage_action_details.py
+++ b/src/oci/fleet_software_update/models/update_stage_action_details.py
@@ -23,7 +23,7 @@ def __init__(self, **kwargs):
:param type:
The value to assign to the type property of this UpdateStageActionDetails.
- Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP"
+ Allowed values for this property are: "STAGE", "PRECHECK", "APPLY", "ROLLBACK_AND_REMOVE_TARGET", "CLEANUP", "ROLLBACK_MAINTENANCE_CYCLE"
:type type: str
:param display_name:
diff --git a/src/oci/fleet_software_update/models/work_request.py b/src/oci/fleet_software_update/models/work_request.py
index 6a4d600743..0f08f599f8 100644
--- a/src/oci/fleet_software_update/models/work_request.py
+++ b/src/oci/fleet_software_update/models/work_request.py
@@ -67,6 +67,10 @@ class WorkRequest(object):
#: This constant has a value of "CLONE_MAINTENANCE_CYCLE"
OPERATION_TYPE_CLONE_MAINTENANCE_CYCLE = "CLONE_MAINTENANCE_CYCLE"
+ #: A constant which can be used with the operation_type property of a WorkRequest.
+ #: This constant has a value of "ROLLBACK_MAINTENANCE_CYCLE_ACTION"
+ OPERATION_TYPE_ROLLBACK_MAINTENANCE_CYCLE_ACTION = "ROLLBACK_MAINTENANCE_CYCLE_ACTION"
+
#: A constant which can be used with the operation_type property of a WorkRequest.
#: This constant has a value of "CREATE_ACTION"
OPERATION_TYPE_CREATE_ACTION = "CREATE_ACTION"
@@ -146,7 +150,7 @@ def __init__(self, **kwargs):
:param operation_type:
The value to assign to the operation_type property of this WorkRequest.
- Allowed values for this property are: "CREATE_DISCOVERY", "DELETE_DISCOVERY", "CREATE_COLLECTION", "UPDATE_COLLECTION", "DELETE_COLLECTION", "MOVE_COLLECTION", "ADD_TARGETS_TO_COLLECTION", "REMOVE_TARGETS_IN_COLLECTION", "CREATE_MAINTENANCE_CYCLE", "UPDATE_MAINTENANCE_CYCLE", "DELETE_MAINTENANCE_CYCLE", "MOVE_MAINTENANCE_CYCLE", "CLONE_MAINTENANCE_CYCLE", "CREATE_ACTION", "UPDATE_ACTION", "DELETE_ACTION", "MOVE_ACTION", "PATCH_ACTION", "CLEANUP_ACTION", "ROLLBACK_AND_REMOVE_ACTION", "APPLY_ACTION", "PRECHECK_ACTION", "STAGE_ACTION", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "CREATE_DISCOVERY", "DELETE_DISCOVERY", "CREATE_COLLECTION", "UPDATE_COLLECTION", "DELETE_COLLECTION", "MOVE_COLLECTION", "ADD_TARGETS_TO_COLLECTION", "REMOVE_TARGETS_IN_COLLECTION", "CREATE_MAINTENANCE_CYCLE", "UPDATE_MAINTENANCE_CYCLE", "DELETE_MAINTENANCE_CYCLE", "MOVE_MAINTENANCE_CYCLE", "CLONE_MAINTENANCE_CYCLE", "ROLLBACK_MAINTENANCE_CYCLE_ACTION", "CREATE_ACTION", "UPDATE_ACTION", "DELETE_ACTION", "MOVE_ACTION", "PATCH_ACTION", "CLEANUP_ACTION", "ROLLBACK_AND_REMOVE_ACTION", "APPLY_ACTION", "PRECHECK_ACTION", "STAGE_ACTION", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type operation_type: str
@@ -225,7 +229,7 @@ def operation_type(self):
**[Required]** Gets the operation_type of this WorkRequest.
Type of the work request.
- Allowed values for this property are: "CREATE_DISCOVERY", "DELETE_DISCOVERY", "CREATE_COLLECTION", "UPDATE_COLLECTION", "DELETE_COLLECTION", "MOVE_COLLECTION", "ADD_TARGETS_TO_COLLECTION", "REMOVE_TARGETS_IN_COLLECTION", "CREATE_MAINTENANCE_CYCLE", "UPDATE_MAINTENANCE_CYCLE", "DELETE_MAINTENANCE_CYCLE", "MOVE_MAINTENANCE_CYCLE", "CLONE_MAINTENANCE_CYCLE", "CREATE_ACTION", "UPDATE_ACTION", "DELETE_ACTION", "MOVE_ACTION", "PATCH_ACTION", "CLEANUP_ACTION", "ROLLBACK_AND_REMOVE_ACTION", "APPLY_ACTION", "PRECHECK_ACTION", "STAGE_ACTION", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "CREATE_DISCOVERY", "DELETE_DISCOVERY", "CREATE_COLLECTION", "UPDATE_COLLECTION", "DELETE_COLLECTION", "MOVE_COLLECTION", "ADD_TARGETS_TO_COLLECTION", "REMOVE_TARGETS_IN_COLLECTION", "CREATE_MAINTENANCE_CYCLE", "UPDATE_MAINTENANCE_CYCLE", "DELETE_MAINTENANCE_CYCLE", "MOVE_MAINTENANCE_CYCLE", "CLONE_MAINTENANCE_CYCLE", "ROLLBACK_MAINTENANCE_CYCLE_ACTION", "CREATE_ACTION", "UPDATE_ACTION", "DELETE_ACTION", "MOVE_ACTION", "PATCH_ACTION", "CLEANUP_ACTION", "ROLLBACK_AND_REMOVE_ACTION", "APPLY_ACTION", "PRECHECK_ACTION", "STAGE_ACTION", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -244,7 +248,7 @@ def operation_type(self, operation_type):
:param operation_type: The operation_type of this WorkRequest.
:type: str
"""
- allowed_values = ["CREATE_DISCOVERY", "DELETE_DISCOVERY", "CREATE_COLLECTION", "UPDATE_COLLECTION", "DELETE_COLLECTION", "MOVE_COLLECTION", "ADD_TARGETS_TO_COLLECTION", "REMOVE_TARGETS_IN_COLLECTION", "CREATE_MAINTENANCE_CYCLE", "UPDATE_MAINTENANCE_CYCLE", "DELETE_MAINTENANCE_CYCLE", "MOVE_MAINTENANCE_CYCLE", "CLONE_MAINTENANCE_CYCLE", "CREATE_ACTION", "UPDATE_ACTION", "DELETE_ACTION", "MOVE_ACTION", "PATCH_ACTION", "CLEANUP_ACTION", "ROLLBACK_AND_REMOVE_ACTION", "APPLY_ACTION", "PRECHECK_ACTION", "STAGE_ACTION"]
+ allowed_values = ["CREATE_DISCOVERY", "DELETE_DISCOVERY", "CREATE_COLLECTION", "UPDATE_COLLECTION", "DELETE_COLLECTION", "MOVE_COLLECTION", "ADD_TARGETS_TO_COLLECTION", "REMOVE_TARGETS_IN_COLLECTION", "CREATE_MAINTENANCE_CYCLE", "UPDATE_MAINTENANCE_CYCLE", "DELETE_MAINTENANCE_CYCLE", "MOVE_MAINTENANCE_CYCLE", "CLONE_MAINTENANCE_CYCLE", "ROLLBACK_MAINTENANCE_CYCLE_ACTION", "CREATE_ACTION", "UPDATE_ACTION", "DELETE_ACTION", "MOVE_ACTION", "PATCH_ACTION", "CLEANUP_ACTION", "ROLLBACK_AND_REMOVE_ACTION", "APPLY_ACTION", "PRECHECK_ACTION", "STAGE_ACTION"]
if not value_allowed_none_or_none_sentinel(operation_type, allowed_values):
operation_type = 'UNKNOWN_ENUM_VALUE'
self._operation_type = operation_type
diff --git a/src/oci/fleet_software_update/models/work_request_summary.py b/src/oci/fleet_software_update/models/work_request_summary.py
index 0a39335d66..fb03a309cf 100644
--- a/src/oci/fleet_software_update/models/work_request_summary.py
+++ b/src/oci/fleet_software_update/models/work_request_summary.py
@@ -67,6 +67,10 @@ class WorkRequestSummary(object):
#: This constant has a value of "CLONE_MAINTENANCE_CYCLE"
OPERATION_TYPE_CLONE_MAINTENANCE_CYCLE = "CLONE_MAINTENANCE_CYCLE"
+ #: A constant which can be used with the operation_type property of a WorkRequestSummary.
+ #: This constant has a value of "ROLLBACK_MAINTENANCE_CYCLE_ACTION"
+ OPERATION_TYPE_ROLLBACK_MAINTENANCE_CYCLE_ACTION = "ROLLBACK_MAINTENANCE_CYCLE_ACTION"
+
#: A constant which can be used with the operation_type property of a WorkRequestSummary.
#: This constant has a value of "CREATE_ACTION"
OPERATION_TYPE_CREATE_ACTION = "CREATE_ACTION"
@@ -146,7 +150,7 @@ def __init__(self, **kwargs):
:param operation_type:
The value to assign to the operation_type property of this WorkRequestSummary.
- Allowed values for this property are: "CREATE_DISCOVERY", "DELETE_DISCOVERY", "CREATE_COLLECTION", "UPDATE_COLLECTION", "DELETE_COLLECTION", "MOVE_COLLECTION", "ADD_TARGETS_TO_COLLECTION", "REMOVE_TARGETS_IN_COLLECTION", "CREATE_MAINTENANCE_CYCLE", "UPDATE_MAINTENANCE_CYCLE", "DELETE_MAINTENANCE_CYCLE", "MOVE_MAINTENANCE_CYCLE", "CLONE_MAINTENANCE_CYCLE", "CREATE_ACTION", "UPDATE_ACTION", "DELETE_ACTION", "MOVE_ACTION", "PATCH_ACTION", "CLEANUP_ACTION", "ROLLBACK_AND_REMOVE_ACTION", "APPLY_ACTION", "PRECHECK_ACTION", "STAGE_ACTION", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "CREATE_DISCOVERY", "DELETE_DISCOVERY", "CREATE_COLLECTION", "UPDATE_COLLECTION", "DELETE_COLLECTION", "MOVE_COLLECTION", "ADD_TARGETS_TO_COLLECTION", "REMOVE_TARGETS_IN_COLLECTION", "CREATE_MAINTENANCE_CYCLE", "UPDATE_MAINTENANCE_CYCLE", "DELETE_MAINTENANCE_CYCLE", "MOVE_MAINTENANCE_CYCLE", "CLONE_MAINTENANCE_CYCLE", "ROLLBACK_MAINTENANCE_CYCLE_ACTION", "CREATE_ACTION", "UPDATE_ACTION", "DELETE_ACTION", "MOVE_ACTION", "PATCH_ACTION", "CLEANUP_ACTION", "ROLLBACK_AND_REMOVE_ACTION", "APPLY_ACTION", "PRECHECK_ACTION", "STAGE_ACTION", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type operation_type: str
@@ -225,7 +229,7 @@ def operation_type(self):
**[Required]** Gets the operation_type of this WorkRequestSummary.
Type of the work request.
- Allowed values for this property are: "CREATE_DISCOVERY", "DELETE_DISCOVERY", "CREATE_COLLECTION", "UPDATE_COLLECTION", "DELETE_COLLECTION", "MOVE_COLLECTION", "ADD_TARGETS_TO_COLLECTION", "REMOVE_TARGETS_IN_COLLECTION", "CREATE_MAINTENANCE_CYCLE", "UPDATE_MAINTENANCE_CYCLE", "DELETE_MAINTENANCE_CYCLE", "MOVE_MAINTENANCE_CYCLE", "CLONE_MAINTENANCE_CYCLE", "CREATE_ACTION", "UPDATE_ACTION", "DELETE_ACTION", "MOVE_ACTION", "PATCH_ACTION", "CLEANUP_ACTION", "ROLLBACK_AND_REMOVE_ACTION", "APPLY_ACTION", "PRECHECK_ACTION", "STAGE_ACTION", 'UNKNOWN_ENUM_VALUE'.
+ Allowed values for this property are: "CREATE_DISCOVERY", "DELETE_DISCOVERY", "CREATE_COLLECTION", "UPDATE_COLLECTION", "DELETE_COLLECTION", "MOVE_COLLECTION", "ADD_TARGETS_TO_COLLECTION", "REMOVE_TARGETS_IN_COLLECTION", "CREATE_MAINTENANCE_CYCLE", "UPDATE_MAINTENANCE_CYCLE", "DELETE_MAINTENANCE_CYCLE", "MOVE_MAINTENANCE_CYCLE", "CLONE_MAINTENANCE_CYCLE", "ROLLBACK_MAINTENANCE_CYCLE_ACTION", "CREATE_ACTION", "UPDATE_ACTION", "DELETE_ACTION", "MOVE_ACTION", "PATCH_ACTION", "CLEANUP_ACTION", "ROLLBACK_AND_REMOVE_ACTION", "APPLY_ACTION", "PRECHECK_ACTION", "STAGE_ACTION", 'UNKNOWN_ENUM_VALUE'.
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
@@ -244,7 +248,7 @@ def operation_type(self, operation_type):
:param operation_type: The operation_type of this WorkRequestSummary.
:type: str
"""
- allowed_values = ["CREATE_DISCOVERY", "DELETE_DISCOVERY", "CREATE_COLLECTION", "UPDATE_COLLECTION", "DELETE_COLLECTION", "MOVE_COLLECTION", "ADD_TARGETS_TO_COLLECTION", "REMOVE_TARGETS_IN_COLLECTION", "CREATE_MAINTENANCE_CYCLE", "UPDATE_MAINTENANCE_CYCLE", "DELETE_MAINTENANCE_CYCLE", "MOVE_MAINTENANCE_CYCLE", "CLONE_MAINTENANCE_CYCLE", "CREATE_ACTION", "UPDATE_ACTION", "DELETE_ACTION", "MOVE_ACTION", "PATCH_ACTION", "CLEANUP_ACTION", "ROLLBACK_AND_REMOVE_ACTION", "APPLY_ACTION", "PRECHECK_ACTION", "STAGE_ACTION"]
+ allowed_values = ["CREATE_DISCOVERY", "DELETE_DISCOVERY", "CREATE_COLLECTION", "UPDATE_COLLECTION", "DELETE_COLLECTION", "MOVE_COLLECTION", "ADD_TARGETS_TO_COLLECTION", "REMOVE_TARGETS_IN_COLLECTION", "CREATE_MAINTENANCE_CYCLE", "UPDATE_MAINTENANCE_CYCLE", "DELETE_MAINTENANCE_CYCLE", "MOVE_MAINTENANCE_CYCLE", "CLONE_MAINTENANCE_CYCLE", "ROLLBACK_MAINTENANCE_CYCLE_ACTION", "CREATE_ACTION", "UPDATE_ACTION", "DELETE_ACTION", "MOVE_ACTION", "PATCH_ACTION", "CLEANUP_ACTION", "ROLLBACK_AND_REMOVE_ACTION", "APPLY_ACTION", "PRECHECK_ACTION", "STAGE_ACTION"]
if not value_allowed_none_or_none_sentinel(operation_type, allowed_values):
operation_type = 'UNKNOWN_ENUM_VALUE'
self._operation_type = operation_type
diff --git a/src/oci/object_storage/transfer/internal/multipart_object_assembler.py b/src/oci/object_storage/transfer/internal/multipart_object_assembler.py
index 8ccc992ca1..e4eeef5ac2 100644
--- a/src/oci/object_storage/transfer/internal/multipart_object_assembler.py
+++ b/src/oci/object_storage/transfer/internal/multipart_object_assembler.py
@@ -74,6 +74,12 @@ def __init__(self,
:param int part_size (optional):
Override the default part size of 128 MiB, value is in bytes.
+ :param str opc_checksum_algorithm (optional):
+ The optional checksum algorithm to use to compute and store the checksum of the body of the HTTP request
+ (or the parts in case of multipart uploads), in addition to the default MD5 checksum.
+
+ Allowed values are: "CRC32C", "SHA256", "SHA384"
+
:param str if_match (optional):
The entity tag of the object to match.
@@ -129,6 +135,9 @@ def __init__(self,
self.part_size = DEFAULT_PART_SIZE
if 'part_size' in kwargs:
self.part_size = kwargs['part_size']
+ self.opc_checksum_algorithm = None
+ if 'opc_checksum_algorithm' in kwargs:
+ self.opc_checksum_algorithm = kwargs['opc_checksum_algorithm']
self.if_match = None
if 'if_match' in kwargs:
self.if_match = kwargs['if_match']
@@ -420,6 +429,9 @@ def new_upload(self, **kwargs):
if self.opc_sse_kms_key_id:
kwargs['opc_sse_kms_key_id'] = self.opc_sse_kms_key_id
+ if self.opc_checksum_algorithm:
+ kwargs['opc_checksum_algorithm'] = self.opc_checksum_algorithm
+
# pass on SSE-C values (if any)
kwargs.update(self.ssec_params)
@@ -452,6 +464,9 @@ def _upload_part(self, part_num, part, **kwargs):
# supply SSE-C key (if any) information to upload-part
new_kwargs.update(self.ssec_params)
+ if self.opc_checksum_algorithm:
+ new_kwargs['opc_checksum_algorithm'] = self.opc_checksum_algorithm
+
# TODO: Calculate the hash without needing to read the file chunk twice.
# Calculate the hash before uploading. The hash will be used
# to determine if the part needs to be uploaded. It will also
diff --git a/src/oci/version.py b/src/oci/version.py
index 198264fdcb..b44fc3fa92 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.139.0"
+__version__ = "2.140.0"
diff --git a/src/oci/visual_builder/models/__init__.py b/src/oci/visual_builder/models/__init__.py
index 8e3767fbbf..fdf72c27af 100644
--- a/src/oci/visual_builder/models/__init__.py
+++ b/src/oci/visual_builder/models/__init__.py
@@ -8,14 +8,16 @@
from .application_summary import ApplicationSummary
from .application_summary_collection import ApplicationSummaryCollection
-from .attachment_details import AttachmentDetails
from .change_vb_instance_compartment_details import ChangeVbInstanceCompartmentDetails
from .create_custom_endpoint_details import CreateCustomEndpointDetails
from .create_vb_instance_details import CreateVbInstanceDetails
from .custom_endpoint_details import CustomEndpointDetails
-from .idcs_info_details import IdcsInfoDetails
+from .network_endpoint_details import NetworkEndpointDetails
+from .private_endpoint_details import PrivateEndpointDetails
from .request_summarized_applications_details import RequestSummarizedApplicationsDetails
from .update_custom_endpoint_details import UpdateCustomEndpointDetails
+from .update_network_endpoint_details import UpdateNetworkEndpointDetails
+from .update_private_endpoint_details import UpdatePrivateEndpointDetails
from .update_vb_instance_details import UpdateVbInstanceDetails
from .vb_instance import VbInstance
from .vb_instance_summary import VbInstanceSummary
@@ -33,14 +35,16 @@
visual_builder_type_mapping = {
"ApplicationSummary": ApplicationSummary,
"ApplicationSummaryCollection": ApplicationSummaryCollection,
- "AttachmentDetails": AttachmentDetails,
"ChangeVbInstanceCompartmentDetails": ChangeVbInstanceCompartmentDetails,
"CreateCustomEndpointDetails": CreateCustomEndpointDetails,
"CreateVbInstanceDetails": CreateVbInstanceDetails,
"CustomEndpointDetails": CustomEndpointDetails,
- "IdcsInfoDetails": IdcsInfoDetails,
+ "NetworkEndpointDetails": NetworkEndpointDetails,
+ "PrivateEndpointDetails": PrivateEndpointDetails,
"RequestSummarizedApplicationsDetails": RequestSummarizedApplicationsDetails,
"UpdateCustomEndpointDetails": UpdateCustomEndpointDetails,
+ "UpdateNetworkEndpointDetails": UpdateNetworkEndpointDetails,
+ "UpdatePrivateEndpointDetails": UpdatePrivateEndpointDetails,
"UpdateVbInstanceDetails": UpdateVbInstanceDetails,
"VbInstance": VbInstance,
"VbInstanceSummary": VbInstanceSummary,
diff --git a/src/oci/visual_builder/models/attachment_details.py b/src/oci/visual_builder/models/attachment_details.py
deleted file mode 100644
index cd0fef33f4..0000000000
--- a/src/oci/visual_builder/models/attachment_details.py
+++ /dev/null
@@ -1,218 +0,0 @@
-# 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: 20210601
-
-
-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 AttachmentDetails(object):
- """
- Description of an attachments for this instance
- """
-
- #: A constant which can be used with the target_role property of a AttachmentDetails.
- #: This constant has a value of "PARENT"
- TARGET_ROLE_PARENT = "PARENT"
-
- #: A constant which can be used with the target_role property of a AttachmentDetails.
- #: This constant has a value of "CHILD"
- TARGET_ROLE_CHILD = "CHILD"
-
- def __init__(self, **kwargs):
- """
- Initializes a new AttachmentDetails object with values from keyword arguments.
- The following keyword arguments are supported (corresponding to the getters/setters of this class):
-
- :param target_role:
- The value to assign to the target_role property of this AttachmentDetails.
- Allowed values for this property are: "PARENT", "CHILD", 'UNKNOWN_ENUM_VALUE'.
- Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
- :type target_role: str
-
- :param is_implicit:
- The value to assign to the is_implicit property of this AttachmentDetails.
- :type is_implicit: bool
-
- :param target_id:
- The value to assign to the target_id property of this AttachmentDetails.
- :type target_id: str
-
- :param target_instance_url:
- The value to assign to the target_instance_url property of this AttachmentDetails.
- :type target_instance_url: str
-
- :param target_service_type:
- The value to assign to the target_service_type property of this AttachmentDetails.
- :type target_service_type: str
-
- """
- self.swagger_types = {
- 'target_role': 'str',
- 'is_implicit': 'bool',
- 'target_id': 'str',
- 'target_instance_url': 'str',
- 'target_service_type': 'str'
- }
-
- self.attribute_map = {
- 'target_role': 'targetRole',
- 'is_implicit': 'isImplicit',
- 'target_id': 'targetId',
- 'target_instance_url': 'targetInstanceUrl',
- 'target_service_type': 'targetServiceType'
- }
-
- self._target_role = None
- self._is_implicit = None
- self._target_id = None
- self._target_instance_url = None
- self._target_service_type = None
-
- @property
- def target_role(self):
- """
- **[Required]** Gets the target_role of this AttachmentDetails.
- The role of the target attachment.
- * `PARENT` - The target instance is the parent of this attachment.
- * `CHILD` - The target instance is the child of this attachment.
-
- Allowed values for this property are: "PARENT", "CHILD", 'UNKNOWN_ENUM_VALUE'.
- Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
-
-
- :return: The target_role of this AttachmentDetails.
- :rtype: str
- """
- return self._target_role
-
- @target_role.setter
- def target_role(self, target_role):
- """
- Sets the target_role of this AttachmentDetails.
- The role of the target attachment.
- * `PARENT` - The target instance is the parent of this attachment.
- * `CHILD` - The target instance is the child of this attachment.
-
-
- :param target_role: The target_role of this AttachmentDetails.
- :type: str
- """
- allowed_values = ["PARENT", "CHILD"]
- if not value_allowed_none_or_none_sentinel(target_role, allowed_values):
- target_role = 'UNKNOWN_ENUM_VALUE'
- self._target_role = target_role
-
- @property
- def is_implicit(self):
- """
- **[Required]** Gets the is_implicit of this AttachmentDetails.
- * If role == `PARENT`, the attached instance was created by this service instance
- * If role == `CHILD`, this instance was created from attached instance on behalf of a user
-
-
- :return: The is_implicit of this AttachmentDetails.
- :rtype: bool
- """
- return self._is_implicit
-
- @is_implicit.setter
- def is_implicit(self, is_implicit):
- """
- Sets the is_implicit of this AttachmentDetails.
- * If role == `PARENT`, the attached instance was created by this service instance
- * If role == `CHILD`, this instance was created from attached instance on behalf of a user
-
-
- :param is_implicit: The is_implicit of this AttachmentDetails.
- :type: bool
- """
- self._is_implicit = is_implicit
-
- @property
- def target_id(self):
- """
- **[Required]** Gets the target_id of this AttachmentDetails.
- The OCID of the target instance (which could be any other OCI PaaS/SaaS resource), to which this instance is attached.
-
-
- :return: The target_id of this AttachmentDetails.
- :rtype: str
- """
- return self._target_id
-
- @target_id.setter
- def target_id(self, target_id):
- """
- Sets the target_id of this AttachmentDetails.
- The OCID of the target instance (which could be any other OCI PaaS/SaaS resource), to which this instance is attached.
-
-
- :param target_id: The target_id of this AttachmentDetails.
- :type: str
- """
- self._target_id = target_id
-
- @property
- def target_instance_url(self):
- """
- **[Required]** Gets the target_instance_url of this AttachmentDetails.
- The dataplane instance URL of the attached instance
-
-
- :return: The target_instance_url of this AttachmentDetails.
- :rtype: str
- """
- return self._target_instance_url
-
- @target_instance_url.setter
- def target_instance_url(self, target_instance_url):
- """
- Sets the target_instance_url of this AttachmentDetails.
- The dataplane instance URL of the attached instance
-
-
- :param target_instance_url: The target_instance_url of this AttachmentDetails.
- :type: str
- """
- self._target_instance_url = target_instance_url
-
- @property
- def target_service_type(self):
- """
- **[Required]** Gets the target_service_type of this AttachmentDetails.
- The type of the target instance, such as \"FUSION\".
-
-
- :return: The target_service_type of this AttachmentDetails.
- :rtype: str
- """
- return self._target_service_type
-
- @target_service_type.setter
- def target_service_type(self, target_service_type):
- """
- Sets the target_service_type of this AttachmentDetails.
- The type of the target instance, such as \"FUSION\".
-
-
- :param target_service_type: The target_service_type of this AttachmentDetails.
- :type: str
- """
- self._target_service_type = target_service_type
-
- 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/visual_builder/models/create_vb_instance_details.py b/src/oci/visual_builder/models/create_vb_instance_details.py
index 1fa053441f..7d9d6c1417 100644
--- a/src/oci/visual_builder/models/create_vb_instance_details.py
+++ b/src/oci/visual_builder/models/create_vb_instance_details.py
@@ -73,6 +73,10 @@ def __init__(self, **kwargs):
Allowed values for this property are: "UCM", "GOV", "VB4SAAS"
:type consumption_model: str
+ :param network_endpoint_details:
+ The value to assign to the network_endpoint_details property of this CreateVbInstanceDetails.
+ :type network_endpoint_details: oci.visual_builder.models.NetworkEndpointDetails
+
"""
self.swagger_types = {
'display_name': 'str',
@@ -84,7 +88,8 @@ def __init__(self, **kwargs):
'is_visual_builder_enabled': 'bool',
'custom_endpoint': 'CreateCustomEndpointDetails',
'alternate_custom_endpoints': 'list[CreateCustomEndpointDetails]',
- 'consumption_model': 'str'
+ 'consumption_model': 'str',
+ 'network_endpoint_details': 'NetworkEndpointDetails'
}
self.attribute_map = {
@@ -97,7 +102,8 @@ def __init__(self, **kwargs):
'is_visual_builder_enabled': 'isVisualBuilderEnabled',
'custom_endpoint': 'customEndpoint',
'alternate_custom_endpoints': 'alternateCustomEndpoints',
- 'consumption_model': 'consumptionModel'
+ 'consumption_model': 'consumptionModel',
+ 'network_endpoint_details': 'networkEndpointDetails'
}
self._display_name = None
@@ -110,6 +116,7 @@ def __init__(self, **kwargs):
self._custom_endpoint = None
self._alternate_custom_endpoints = None
self._consumption_model = None
+ self._network_endpoint_details = None
@property
def display_name(self):
@@ -364,6 +371,26 @@ def consumption_model(self, consumption_model):
)
self._consumption_model = consumption_model
+ @property
+ def network_endpoint_details(self):
+ """
+ Gets the network_endpoint_details of this CreateVbInstanceDetails.
+
+ :return: The network_endpoint_details of this CreateVbInstanceDetails.
+ :rtype: oci.visual_builder.models.NetworkEndpointDetails
+ """
+ return self._network_endpoint_details
+
+ @network_endpoint_details.setter
+ def network_endpoint_details(self, network_endpoint_details):
+ """
+ Sets the network_endpoint_details of this CreateVbInstanceDetails.
+
+ :param network_endpoint_details: The network_endpoint_details of this CreateVbInstanceDetails.
+ :type: oci.visual_builder.models.NetworkEndpointDetails
+ """
+ self._network_endpoint_details = network_endpoint_details
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/visual_builder/models/idcs_info_details.py b/src/oci/visual_builder/models/idcs_info_details.py
deleted file mode 100644
index 5f38eb381f..0000000000
--- a/src/oci/visual_builder/models/idcs_info_details.py
+++ /dev/null
@@ -1,198 +0,0 @@
-# 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: 20210601
-
-
-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 IdcsInfoDetails(object):
- """
- Information for IDCS access
- """
-
- def __init__(self, **kwargs):
- """
- Initializes a new IdcsInfoDetails object with values from keyword arguments.
- The following keyword arguments are supported (corresponding to the getters/setters of this class):
-
- :param idcs_app_location_url:
- The value to assign to the idcs_app_location_url property of this IdcsInfoDetails.
- :type idcs_app_location_url: str
-
- :param idcs_app_display_name:
- The value to assign to the idcs_app_display_name property of this IdcsInfoDetails.
- :type idcs_app_display_name: str
-
- :param idcs_app_id:
- The value to assign to the idcs_app_id property of this IdcsInfoDetails.
- :type idcs_app_id: str
-
- :param idcs_app_name:
- The value to assign to the idcs_app_name property of this IdcsInfoDetails.
- :type idcs_app_name: str
-
- :param instance_primary_audience_url:
- The value to assign to the instance_primary_audience_url property of this IdcsInfoDetails.
- :type instance_primary_audience_url: str
-
- """
- self.swagger_types = {
- 'idcs_app_location_url': 'str',
- 'idcs_app_display_name': 'str',
- 'idcs_app_id': 'str',
- 'idcs_app_name': 'str',
- 'instance_primary_audience_url': 'str'
- }
-
- self.attribute_map = {
- 'idcs_app_location_url': 'idcsAppLocationUrl',
- 'idcs_app_display_name': 'idcsAppDisplayName',
- 'idcs_app_id': 'idcsAppId',
- 'idcs_app_name': 'idcsAppName',
- 'instance_primary_audience_url': 'instancePrimaryAudienceUrl'
- }
-
- self._idcs_app_location_url = None
- self._idcs_app_display_name = None
- self._idcs_app_id = None
- self._idcs_app_name = None
- self._instance_primary_audience_url = None
-
- @property
- def idcs_app_location_url(self):
- """
- **[Required]** Gets the idcs_app_location_url of this IdcsInfoDetails.
- URL for the location of the IDCS Application (used by IDCS APIs)
-
-
- :return: The idcs_app_location_url of this IdcsInfoDetails.
- :rtype: str
- """
- return self._idcs_app_location_url
-
- @idcs_app_location_url.setter
- def idcs_app_location_url(self, idcs_app_location_url):
- """
- Sets the idcs_app_location_url of this IdcsInfoDetails.
- URL for the location of the IDCS Application (used by IDCS APIs)
-
-
- :param idcs_app_location_url: The idcs_app_location_url of this IdcsInfoDetails.
- :type: str
- """
- self._idcs_app_location_url = idcs_app_location_url
-
- @property
- def idcs_app_display_name(self):
- """
- **[Required]** Gets the idcs_app_display_name of this IdcsInfoDetails.
- The IDCS application display name associated with the instance
-
-
- :return: The idcs_app_display_name of this IdcsInfoDetails.
- :rtype: str
- """
- return self._idcs_app_display_name
-
- @idcs_app_display_name.setter
- def idcs_app_display_name(self, idcs_app_display_name):
- """
- Sets the idcs_app_display_name of this IdcsInfoDetails.
- The IDCS application display name associated with the instance
-
-
- :param idcs_app_display_name: The idcs_app_display_name of this IdcsInfoDetails.
- :type: str
- """
- self._idcs_app_display_name = idcs_app_display_name
-
- @property
- def idcs_app_id(self):
- """
- **[Required]** Gets the idcs_app_id of this IdcsInfoDetails.
- The IDCS application ID associated with the instance
-
-
- :return: The idcs_app_id of this IdcsInfoDetails.
- :rtype: str
- """
- return self._idcs_app_id
-
- @idcs_app_id.setter
- def idcs_app_id(self, idcs_app_id):
- """
- Sets the idcs_app_id of this IdcsInfoDetails.
- The IDCS application ID associated with the instance
-
-
- :param idcs_app_id: The idcs_app_id of this IdcsInfoDetails.
- :type: str
- """
- self._idcs_app_id = idcs_app_id
-
- @property
- def idcs_app_name(self):
- """
- **[Required]** Gets the idcs_app_name of this IdcsInfoDetails.
- The IDCS application name associated with the instance
-
-
- :return: The idcs_app_name of this IdcsInfoDetails.
- :rtype: str
- """
- return self._idcs_app_name
-
- @idcs_app_name.setter
- def idcs_app_name(self, idcs_app_name):
- """
- Sets the idcs_app_name of this IdcsInfoDetails.
- The IDCS application name associated with the instance
-
-
- :param idcs_app_name: The idcs_app_name of this IdcsInfoDetails.
- :type: str
- """
- self._idcs_app_name = idcs_app_name
-
- @property
- def instance_primary_audience_url(self):
- """
- **[Required]** Gets the instance_primary_audience_url of this IdcsInfoDetails.
- The URL used as the primary audience for visual builder flows in this instance
- type: string
-
-
- :return: The instance_primary_audience_url of this IdcsInfoDetails.
- :rtype: str
- """
- return self._instance_primary_audience_url
-
- @instance_primary_audience_url.setter
- def instance_primary_audience_url(self, instance_primary_audience_url):
- """
- Sets the instance_primary_audience_url of this IdcsInfoDetails.
- The URL used as the primary audience for visual builder flows in this instance
- type: string
-
-
- :param instance_primary_audience_url: The instance_primary_audience_url of this IdcsInfoDetails.
- :type: str
- """
- self._instance_primary_audience_url = instance_primary_audience_url
-
- 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/visual_builder/models/network_endpoint_details.py b/src/oci/visual_builder/models/network_endpoint_details.py
new file mode 100644
index 0000000000..f8bae56b23
--- /dev/null
+++ b/src/oci/visual_builder/models/network_endpoint_details.py
@@ -0,0 +1,102 @@
+# 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: 20210601
+
+
+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 NetworkEndpointDetails(object):
+ """
+ Base representation of a network endpoint.
+ In input payload to update an Visual Builder instance endpoint details, an empty payload will clear out any existing configuration for Public Visual Builder instance.
+ """
+
+ #: A constant which can be used with the network_endpoint_type property of a NetworkEndpointDetails.
+ #: This constant has a value of "PRIVATE"
+ NETWORK_ENDPOINT_TYPE_PRIVATE = "PRIVATE"
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new NetworkEndpointDetails 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.visual_builder.models.PrivateEndpointDetails`
+
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param network_endpoint_type:
+ The value to assign to the network_endpoint_type property of this NetworkEndpointDetails.
+ Allowed values for this property are: "PRIVATE", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+ :type network_endpoint_type: str
+
+ """
+ self.swagger_types = {
+ 'network_endpoint_type': 'str'
+ }
+
+ self.attribute_map = {
+ 'network_endpoint_type': 'networkEndpointType'
+ }
+
+ self._network_endpoint_type = 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['networkEndpointType']
+
+ if type == 'PRIVATE':
+ return 'PrivateEndpointDetails'
+ else:
+ return 'NetworkEndpointDetails'
+
+ @property
+ def network_endpoint_type(self):
+ """
+ **[Required]** Gets the network_endpoint_type of this NetworkEndpointDetails.
+ The type of network endpoint.
+
+ Allowed values for this property are: "PRIVATE", 'UNKNOWN_ENUM_VALUE'.
+ Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
+
+
+ :return: The network_endpoint_type of this NetworkEndpointDetails.
+ :rtype: str
+ """
+ return self._network_endpoint_type
+
+ @network_endpoint_type.setter
+ def network_endpoint_type(self, network_endpoint_type):
+ """
+ Sets the network_endpoint_type of this NetworkEndpointDetails.
+ The type of network endpoint.
+
+
+ :param network_endpoint_type: The network_endpoint_type of this NetworkEndpointDetails.
+ :type: str
+ """
+ allowed_values = ["PRIVATE"]
+ if not value_allowed_none_or_none_sentinel(network_endpoint_type, allowed_values):
+ network_endpoint_type = 'UNKNOWN_ENUM_VALUE'
+ self._network_endpoint_type = network_endpoint_type
+
+ 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/visual_builder/models/private_endpoint_details.py b/src/oci/visual_builder/models/private_endpoint_details.py
new file mode 100644
index 0000000000..e78a947be6
--- /dev/null
+++ b/src/oci/visual_builder/models/private_endpoint_details.py
@@ -0,0 +1,144 @@
+# 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: 20210601
+
+from .network_endpoint_details import NetworkEndpointDetails
+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 PrivateEndpointDetails(NetworkEndpointDetails):
+ """
+ Private endpoint configuration details.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new PrivateEndpointDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.visual_builder.models.PrivateEndpointDetails.network_endpoint_type` attribute
+ of this class is ``PRIVATE`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param network_endpoint_type:
+ The value to assign to the network_endpoint_type property of this PrivateEndpointDetails.
+ Allowed values for this property are: "PRIVATE"
+ :type network_endpoint_type: str
+
+ :param subnet_id:
+ The value to assign to the subnet_id property of this PrivateEndpointDetails.
+ :type subnet_id: str
+
+ :param network_security_group_ids:
+ The value to assign to the network_security_group_ids property of this PrivateEndpointDetails.
+ :type network_security_group_ids: list[str]
+
+ :param private_endpoint_ip:
+ The value to assign to the private_endpoint_ip property of this PrivateEndpointDetails.
+ :type private_endpoint_ip: str
+
+ """
+ self.swagger_types = {
+ 'network_endpoint_type': 'str',
+ 'subnet_id': 'str',
+ 'network_security_group_ids': 'list[str]',
+ 'private_endpoint_ip': 'str'
+ }
+
+ self.attribute_map = {
+ 'network_endpoint_type': 'networkEndpointType',
+ 'subnet_id': 'subnetId',
+ 'network_security_group_ids': 'networkSecurityGroupIds',
+ 'private_endpoint_ip': 'privateEndpointIp'
+ }
+
+ self._network_endpoint_type = None
+ self._subnet_id = None
+ self._network_security_group_ids = None
+ self._private_endpoint_ip = None
+ self._network_endpoint_type = 'PRIVATE'
+
+ @property
+ def subnet_id(self):
+ """
+ **[Required]** Gets the subnet_id of this PrivateEndpointDetails.
+ The subnet OCID for the private endpoint.
+
+
+ :return: The subnet_id of this PrivateEndpointDetails.
+ :rtype: str
+ """
+ return self._subnet_id
+
+ @subnet_id.setter
+ def subnet_id(self, subnet_id):
+ """
+ Sets the subnet_id of this PrivateEndpointDetails.
+ The subnet OCID for the private endpoint.
+
+
+ :param subnet_id: The subnet_id of this PrivateEndpointDetails.
+ :type: str
+ """
+ self._subnet_id = subnet_id
+
+ @property
+ def network_security_group_ids(self):
+ """
+ Gets the network_security_group_ids of this PrivateEndpointDetails.
+ Network Security Group OCIDs for the Private Endpoint.
+
+
+ :return: The network_security_group_ids of this PrivateEndpointDetails.
+ :rtype: list[str]
+ """
+ return self._network_security_group_ids
+
+ @network_security_group_ids.setter
+ def network_security_group_ids(self, network_security_group_ids):
+ """
+ Sets the network_security_group_ids of this PrivateEndpointDetails.
+ Network Security Group OCIDs for the Private Endpoint.
+
+
+ :param network_security_group_ids: The network_security_group_ids of this PrivateEndpointDetails.
+ :type: list[str]
+ """
+ self._network_security_group_ids = network_security_group_ids
+
+ @property
+ def private_endpoint_ip(self):
+ """
+ Gets the private_endpoint_ip of this PrivateEndpointDetails.
+ The IP address to be assigned to Private Endpoint
+
+
+ :return: The private_endpoint_ip of this PrivateEndpointDetails.
+ :rtype: str
+ """
+ return self._private_endpoint_ip
+
+ @private_endpoint_ip.setter
+ def private_endpoint_ip(self, private_endpoint_ip):
+ """
+ Sets the private_endpoint_ip of this PrivateEndpointDetails.
+ The IP address to be assigned to Private Endpoint
+
+
+ :param private_endpoint_ip: The private_endpoint_ip of this PrivateEndpointDetails.
+ :type: str
+ """
+ self._private_endpoint_ip = private_endpoint_ip
+
+ 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/visual_builder/models/update_network_endpoint_details.py b/src/oci/visual_builder/models/update_network_endpoint_details.py
new file mode 100644
index 0000000000..eb4b60af8c
--- /dev/null
+++ b/src/oci/visual_builder/models/update_network_endpoint_details.py
@@ -0,0 +1,102 @@
+# 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: 20210601
+
+
+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 UpdateNetworkEndpointDetails(object):
+ """
+ Base representation of a network endpoint.
+ In input payload to update an Visual Builder instance endpoint details, an empty payload will clear out any existing configuration for Public Visual Builder instance.
+ """
+
+ #: A constant which can be used with the network_endpoint_type property of a UpdateNetworkEndpointDetails.
+ #: This constant has a value of "PRIVATE"
+ NETWORK_ENDPOINT_TYPE_PRIVATE = "PRIVATE"
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new UpdateNetworkEndpointDetails 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.visual_builder.models.UpdatePrivateEndpointDetails`
+
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param network_endpoint_type:
+ The value to assign to the network_endpoint_type property of this UpdateNetworkEndpointDetails.
+ Allowed values for this property are: "PRIVATE"
+ :type network_endpoint_type: str
+
+ """
+ self.swagger_types = {
+ 'network_endpoint_type': 'str'
+ }
+
+ self.attribute_map = {
+ 'network_endpoint_type': 'networkEndpointType'
+ }
+
+ self._network_endpoint_type = 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['networkEndpointType']
+
+ if type == 'PRIVATE':
+ return 'UpdatePrivateEndpointDetails'
+ else:
+ return 'UpdateNetworkEndpointDetails'
+
+ @property
+ def network_endpoint_type(self):
+ """
+ **[Required]** Gets the network_endpoint_type of this UpdateNetworkEndpointDetails.
+ The type of network endpoint.
+
+ Allowed values for this property are: "PRIVATE"
+
+
+ :return: The network_endpoint_type of this UpdateNetworkEndpointDetails.
+ :rtype: str
+ """
+ return self._network_endpoint_type
+
+ @network_endpoint_type.setter
+ def network_endpoint_type(self, network_endpoint_type):
+ """
+ Sets the network_endpoint_type of this UpdateNetworkEndpointDetails.
+ The type of network endpoint.
+
+
+ :param network_endpoint_type: The network_endpoint_type of this UpdateNetworkEndpointDetails.
+ :type: str
+ """
+ allowed_values = ["PRIVATE"]
+ if not value_allowed_none_or_none_sentinel(network_endpoint_type, allowed_values):
+ raise ValueError(
+ f"Invalid value for `network_endpoint_type`, must be None or one of {allowed_values}"
+ )
+ self._network_endpoint_type = network_endpoint_type
+
+ 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/visual_builder/models/update_private_endpoint_details.py b/src/oci/visual_builder/models/update_private_endpoint_details.py
new file mode 100644
index 0000000000..08e3b14db6
--- /dev/null
+++ b/src/oci/visual_builder/models/update_private_endpoint_details.py
@@ -0,0 +1,113 @@
+# 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: 20210601
+
+from .update_network_endpoint_details import UpdateNetworkEndpointDetails
+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 UpdatePrivateEndpointDetails(UpdateNetworkEndpointDetails):
+ """
+ Private endpoint update configuration details.
+ """
+
+ def __init__(self, **kwargs):
+ """
+ Initializes a new UpdatePrivateEndpointDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.visual_builder.models.UpdatePrivateEndpointDetails.network_endpoint_type` attribute
+ of this class is ``PRIVATE`` and it should not be changed.
+ The following keyword arguments are supported (corresponding to the getters/setters of this class):
+
+ :param network_endpoint_type:
+ The value to assign to the network_endpoint_type property of this UpdatePrivateEndpointDetails.
+ Allowed values for this property are: "PRIVATE"
+ :type network_endpoint_type: str
+
+ :param subnet_id:
+ The value to assign to the subnet_id property of this UpdatePrivateEndpointDetails.
+ :type subnet_id: str
+
+ :param network_security_group_ids:
+ The value to assign to the network_security_group_ids property of this UpdatePrivateEndpointDetails.
+ :type network_security_group_ids: list[str]
+
+ """
+ self.swagger_types = {
+ 'network_endpoint_type': 'str',
+ 'subnet_id': 'str',
+ 'network_security_group_ids': 'list[str]'
+ }
+
+ self.attribute_map = {
+ 'network_endpoint_type': 'networkEndpointType',
+ 'subnet_id': 'subnetId',
+ 'network_security_group_ids': 'networkSecurityGroupIds'
+ }
+
+ self._network_endpoint_type = None
+ self._subnet_id = None
+ self._network_security_group_ids = None
+ self._network_endpoint_type = 'PRIVATE'
+
+ @property
+ def subnet_id(self):
+ """
+ Gets the subnet_id of this UpdatePrivateEndpointDetails.
+ The subnet OCID for the private endpoint. If provided then a new Private Endpoint will be created and a new Private Endpoint IP may be generated.
+
+
+ :return: The subnet_id of this UpdatePrivateEndpointDetails.
+ :rtype: str
+ """
+ return self._subnet_id
+
+ @subnet_id.setter
+ def subnet_id(self, subnet_id):
+ """
+ Sets the subnet_id of this UpdatePrivateEndpointDetails.
+ The subnet OCID for the private endpoint. If provided then a new Private Endpoint will be created and a new Private Endpoint IP may be generated.
+
+
+ :param subnet_id: The subnet_id of this UpdatePrivateEndpointDetails.
+ :type: str
+ """
+ self._subnet_id = subnet_id
+
+ @property
+ def network_security_group_ids(self):
+ """
+ Gets the network_security_group_ids of this UpdatePrivateEndpointDetails.
+ Network Security Group OCIDs for the Private Endpoint.
+
+
+ :return: The network_security_group_ids of this UpdatePrivateEndpointDetails.
+ :rtype: list[str]
+ """
+ return self._network_security_group_ids
+
+ @network_security_group_ids.setter
+ def network_security_group_ids(self, network_security_group_ids):
+ """
+ Sets the network_security_group_ids of this UpdatePrivateEndpointDetails.
+ Network Security Group OCIDs for the Private Endpoint.
+
+
+ :param network_security_group_ids: The network_security_group_ids of this UpdatePrivateEndpointDetails.
+ :type: list[str]
+ """
+ self._network_security_group_ids = network_security_group_ids
+
+ 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/visual_builder/models/update_vb_instance_details.py b/src/oci/visual_builder/models/update_vb_instance_details.py
index abd16169c8..90326a6af6 100644
--- a/src/oci/visual_builder/models/update_vb_instance_details.py
+++ b/src/oci/visual_builder/models/update_vb_instance_details.py
@@ -52,6 +52,10 @@ def __init__(self, **kwargs):
The value to assign to the alternate_custom_endpoints property of this UpdateVbInstanceDetails.
:type alternate_custom_endpoints: list[oci.visual_builder.models.UpdateCustomEndpointDetails]
+ :param network_endpoint_details:
+ The value to assign to the network_endpoint_details property of this UpdateVbInstanceDetails.
+ :type network_endpoint_details: oci.visual_builder.models.UpdateNetworkEndpointDetails
+
"""
self.swagger_types = {
'display_name': 'str',
@@ -61,7 +65,8 @@ def __init__(self, **kwargs):
'node_count': 'int',
'is_visual_builder_enabled': 'bool',
'custom_endpoint': 'UpdateCustomEndpointDetails',
- 'alternate_custom_endpoints': 'list[UpdateCustomEndpointDetails]'
+ 'alternate_custom_endpoints': 'list[UpdateCustomEndpointDetails]',
+ 'network_endpoint_details': 'UpdateNetworkEndpointDetails'
}
self.attribute_map = {
@@ -72,7 +77,8 @@ def __init__(self, **kwargs):
'node_count': 'nodeCount',
'is_visual_builder_enabled': 'isVisualBuilderEnabled',
'custom_endpoint': 'customEndpoint',
- 'alternate_custom_endpoints': 'alternateCustomEndpoints'
+ 'alternate_custom_endpoints': 'alternateCustomEndpoints',
+ 'network_endpoint_details': 'networkEndpointDetails'
}
self._display_name = None
@@ -83,6 +89,7 @@ def __init__(self, **kwargs):
self._is_visual_builder_enabled = None
self._custom_endpoint = None
self._alternate_custom_endpoints = None
+ self._network_endpoint_details = None
@property
def display_name(self):
@@ -282,6 +289,26 @@ def alternate_custom_endpoints(self, alternate_custom_endpoints):
"""
self._alternate_custom_endpoints = alternate_custom_endpoints
+ @property
+ def network_endpoint_details(self):
+ """
+ Gets the network_endpoint_details of this UpdateVbInstanceDetails.
+
+ :return: The network_endpoint_details of this UpdateVbInstanceDetails.
+ :rtype: oci.visual_builder.models.UpdateNetworkEndpointDetails
+ """
+ return self._network_endpoint_details
+
+ @network_endpoint_details.setter
+ def network_endpoint_details(self, network_endpoint_details):
+ """
+ Sets the network_endpoint_details of this UpdateVbInstanceDetails.
+
+ :param network_endpoint_details: The network_endpoint_details of this UpdateVbInstanceDetails.
+ :type: oci.visual_builder.models.UpdateNetworkEndpointDetails
+ """
+ self._network_endpoint_details = network_endpoint_details
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/visual_builder/models/vb_instance.py b/src/oci/visual_builder/models/vb_instance.py
index 9d0e7fd505..1161eccc67 100644
--- a/src/oci/visual_builder/models/vb_instance.py
+++ b/src/oci/visual_builder/models/vb_instance.py
@@ -128,14 +128,6 @@ def __init__(self, **kwargs):
Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
:type consumption_model: str
- :param idcs_info:
- The value to assign to the idcs_info property of this VbInstance.
- :type idcs_info: oci.visual_builder.models.IdcsInfoDetails
-
- :param attachments:
- The value to assign to the attachments property of this VbInstance.
- :type attachments: list[oci.visual_builder.models.AttachmentDetails]
-
:param service_nat_gateway_ip:
The value to assign to the service_nat_gateway_ip property of this VbInstance.
:type service_nat_gateway_ip: str
@@ -152,6 +144,10 @@ def __init__(self, **kwargs):
The value to assign to the management_vcn_id property of this VbInstance.
:type management_vcn_id: str
+ :param network_endpoint_details:
+ The value to assign to the network_endpoint_details property of this VbInstance.
+ :type network_endpoint_details: oci.visual_builder.models.NetworkEndpointDetails
+
"""
self.swagger_types = {
'id': 'str',
@@ -170,12 +166,11 @@ def __init__(self, **kwargs):
'custom_endpoint': 'CustomEndpointDetails',
'alternate_custom_endpoints': 'list[CustomEndpointDetails]',
'consumption_model': 'str',
- 'idcs_info': 'IdcsInfoDetails',
- 'attachments': 'list[AttachmentDetails]',
'service_nat_gateway_ip': 'str',
'management_nat_gateway_ip': 'str',
'service_vcn_id': 'str',
- 'management_vcn_id': 'str'
+ 'management_vcn_id': 'str',
+ 'network_endpoint_details': 'NetworkEndpointDetails'
}
self.attribute_map = {
@@ -195,12 +190,11 @@ def __init__(self, **kwargs):
'custom_endpoint': 'customEndpoint',
'alternate_custom_endpoints': 'alternateCustomEndpoints',
'consumption_model': 'consumptionModel',
- 'idcs_info': 'idcsInfo',
- 'attachments': 'attachments',
'service_nat_gateway_ip': 'serviceNatGatewayIp',
'management_nat_gateway_ip': 'managementNatGatewayIp',
'service_vcn_id': 'serviceVcnId',
- 'management_vcn_id': 'managementVcnId'
+ 'management_vcn_id': 'managementVcnId',
+ 'network_endpoint_details': 'networkEndpointDetails'
}
self._id = None
@@ -219,12 +213,11 @@ def __init__(self, **kwargs):
self._custom_endpoint = None
self._alternate_custom_endpoints = None
self._consumption_model = None
- self._idcs_info = None
- self._attachments = None
self._service_nat_gateway_ip = None
self._management_nat_gateway_ip = None
self._service_vcn_id = None
self._management_vcn_id = None
+ self._network_endpoint_details = None
@property
def id(self):
@@ -624,50 +617,6 @@ def consumption_model(self, consumption_model):
consumption_model = 'UNKNOWN_ENUM_VALUE'
self._consumption_model = consumption_model
- @property
- def idcs_info(self):
- """
- Gets the idcs_info of this VbInstance.
-
- :return: The idcs_info of this VbInstance.
- :rtype: oci.visual_builder.models.IdcsInfoDetails
- """
- return self._idcs_info
-
- @idcs_info.setter
- def idcs_info(self, idcs_info):
- """
- Sets the idcs_info of this VbInstance.
-
- :param idcs_info: The idcs_info of this VbInstance.
- :type: oci.visual_builder.models.IdcsInfoDetails
- """
- self._idcs_info = idcs_info
-
- @property
- def attachments(self):
- """
- Gets the attachments of this VbInstance.
- A list of associated attachments to other services
-
-
- :return: The attachments of this VbInstance.
- :rtype: list[oci.visual_builder.models.AttachmentDetails]
- """
- return self._attachments
-
- @attachments.setter
- def attachments(self, attachments):
- """
- Sets the attachments of this VbInstance.
- A list of associated attachments to other services
-
-
- :param attachments: The attachments of this VbInstance.
- :type: list[oci.visual_builder.models.AttachmentDetails]
- """
- self._attachments = attachments
-
@property
def service_nat_gateway_ip(self):
"""
@@ -764,6 +713,26 @@ def management_vcn_id(self, management_vcn_id):
"""
self._management_vcn_id = management_vcn_id
+ @property
+ def network_endpoint_details(self):
+ """
+ Gets the network_endpoint_details of this VbInstance.
+
+ :return: The network_endpoint_details of this VbInstance.
+ :rtype: oci.visual_builder.models.NetworkEndpointDetails
+ """
+ return self._network_endpoint_details
+
+ @network_endpoint_details.setter
+ def network_endpoint_details(self, network_endpoint_details):
+ """
+ Sets the network_endpoint_details of this VbInstance.
+
+ :param network_endpoint_details: The network_endpoint_details of this VbInstance.
+ :type: oci.visual_builder.models.NetworkEndpointDetails
+ """
+ self._network_endpoint_details = network_endpoint_details
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/visual_builder/models/vb_instance_summary.py b/src/oci/visual_builder/models/vb_instance_summary.py
index 987b873d20..d3f6cb1dae 100644
--- a/src/oci/visual_builder/models/vb_instance_summary.py
+++ b/src/oci/visual_builder/models/vb_instance_summary.py
@@ -128,6 +128,10 @@ def __init__(self, **kwargs):
The value to assign to the system_tags property of this VbInstanceSummary.
:type system_tags: dict(str, dict(str, object))
+ :param network_endpoint_details:
+ The value to assign to the network_endpoint_details property of this VbInstanceSummary.
+ :type network_endpoint_details: oci.visual_builder.models.NetworkEndpointDetails
+
"""
self.swagger_types = {
'id': 'str',
@@ -145,7 +149,8 @@ def __init__(self, **kwargs):
'consumption_model': 'str',
'freeform_tags': 'dict(str, str)',
'defined_tags': 'dict(str, dict(str, object))',
- 'system_tags': 'dict(str, dict(str, object))'
+ 'system_tags': 'dict(str, dict(str, object))',
+ 'network_endpoint_details': 'NetworkEndpointDetails'
}
self.attribute_map = {
@@ -164,7 +169,8 @@ def __init__(self, **kwargs):
'consumption_model': 'consumptionModel',
'freeform_tags': 'freeformTags',
'defined_tags': 'definedTags',
- 'system_tags': 'systemTags'
+ 'system_tags': 'systemTags',
+ 'network_endpoint_details': 'networkEndpointDetails'
}
self._id = None
@@ -183,6 +189,7 @@ def __init__(self, **kwargs):
self._freeform_tags = None
self._defined_tags = None
self._system_tags = None
+ self._network_endpoint_details = None
@property
def id(self):
@@ -582,6 +589,26 @@ def system_tags(self, system_tags):
"""
self._system_tags = system_tags
+ @property
+ def network_endpoint_details(self):
+ """
+ Gets the network_endpoint_details of this VbInstanceSummary.
+
+ :return: The network_endpoint_details of this VbInstanceSummary.
+ :rtype: oci.visual_builder.models.NetworkEndpointDetails
+ """
+ return self._network_endpoint_details
+
+ @network_endpoint_details.setter
+ def network_endpoint_details(self, network_endpoint_details):
+ """
+ Sets the network_endpoint_details of this VbInstanceSummary.
+
+ :param network_endpoint_details: The network_endpoint_details of this VbInstanceSummary.
+ :type: oci.visual_builder.models.NetworkEndpointDetails
+ """
+ self._network_endpoint_details = network_endpoint_details
+
def __repr__(self):
return formatted_flat_dict(self)
diff --git a/src/oci/visual_builder/vb_instance_client.py b/src/oci/visual_builder/vb_instance_client.py
index ab2c5341a3..5864d7bb24 100644
--- a/src/oci/visual_builder/vb_instance_client.py
+++ b/src/oci/visual_builder/vb_instance_client.py
@@ -1128,6 +1128,122 @@ def list_work_requests(self, compartment_id, **kwargs):
api_reference_link=api_reference_link,
required_arguments=required_arguments)
+ def reconfigure_private_endpoint_vb_instance(self, vb_instance_id, **kwargs):
+ """
+ Reconfigures the Private Endpoint associated with the private visual builder instance. Use this action in case the Private Endpoint is not working and needs to be reset.
+ The VB instance has to be in ACTIVE state and should be a private instance to perform this operation.
+ If the previous state is not ACTIVE, then the state of the vbInstance will not be changed and a 409 response returned.
+
+
+ :param str vb_instance_id: (required)
+ Unique Vb Instance identifier.
+
+ :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.
+
+ :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 executing that same action
+ again. Retry tokens expire after 24 hours, but can be invalidated before
+ then due to conflicting operations. For example, if a resource has been
+ deleted and purged from the system, then a retry of the original creation
+ request might be rejected.
+
+ :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 None
+ :rtype: :class:`~oci.response.Response`
+
+ :example:
+ Click `here `__ to see an example of how to use reconfigure_private_endpoint_vb_instance API.
+ """
+ # Required path and query arguments. These are in camelCase to replace values in service endpoints.
+ required_arguments = ['vbInstanceId']
+ resource_path = "/vbInstances/{vbInstanceId}/actions/reconfigurePrivateEndpoint"
+ method = "POST"
+ operation_name = "reconfigure_private_endpoint_vb_instance"
+ api_reference_link = "https://docs.oracle.com/iaas/api/#/en/visual-builder/20210601/VbInstance/ReconfigurePrivateEndpointVbInstance"
+
+ # Don't accept unknown kwargs
+ expected_kwargs = [
+ "allow_control_chars",
+ "retry_strategy",
+ "if_match",
+ "opc_request_id",
+ "opc_retry_token"
+ ]
+ extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs]
+ if extra_kwargs:
+ raise ValueError(
+ f"reconfigure_private_endpoint_vb_instance got unknown kwargs: {extra_kwargs!r}")
+
+ path_params = {
+ "vbInstanceId": vb_instance_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),
+ "opc-retry-token": kwargs.get("opc_retry_token", 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_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,
+ 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 request_summarized_applications(self, request_summarized_applications_details, vb_instance_id, **kwargs):
"""
Summarizes the applications for a vb instance.
diff --git a/src/oci/visual_builder/vb_instance_client_composite_operations.py b/src/oci/visual_builder/vb_instance_client_composite_operations.py
index cb9e7ada0e..614530ca04 100644
--- a/src/oci/visual_builder/vb_instance_client_composite_operations.py
+++ b/src/oci/visual_builder/vb_instance_client_composite_operations.py
@@ -153,6 +153,45 @@ def delete_vb_instance_and_wait_for_state(self, vb_instance_id, wait_for_states=
except Exception as e:
raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e)
+ def reconfigure_private_endpoint_vb_instance_and_wait_for_state(self, vb_instance_id, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}):
+ """
+ Calls :py:func:`~oci.visual_builder.VbInstanceClient.reconfigure_private_endpoint_vb_instance` and waits for the :py:class:`~oci.visual_builder.models.WorkRequest`
+ to enter the given state(s).
+
+ :param str vb_instance_id: (required)
+ Unique Vb Instance identifier.
+
+ :param list[str] wait_for_states:
+ An array of states to wait on. These should be valid values for :py:attr:`~oci.visual_builder.models.WorkRequest.status`
+
+ :param dict operation_kwargs:
+ A dictionary of keyword arguments to pass to :py:func:`~oci.visual_builder.VbInstanceClient.reconfigure_private_endpoint_vb_instance`
+
+ :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.reconfigure_private_endpoint_vb_instance(vb_instance_id, **operation_kwargs)
+ if not wait_for_states:
+ return operation_result
+ lowered_wait_for_states = [w.lower() for w in wait_for_states]
+ if 'opc-work-request-id' not in operation_result.headers:
+ return operation_result
+ wait_for_resource_id = operation_result.headers['opc-work-request-id']
+
+ try:
+ waiter_result = oci.wait_until(
+ self.client,
+ self.client.get_work_request(wait_for_resource_id),
+ evaluate_response=lambda r: getattr(r.data, 'status') and getattr(r.data, 'status').lower() in lowered_wait_for_states,
+ **waiter_kwargs
+ )
+ result_to_return = waiter_result
+
+ return result_to_return
+ except Exception as e:
+ raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e)
+
def start_vb_instance_and_wait_for_state(self, vb_instance_id, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}):
"""
Calls :py:func:`~oci.visual_builder.VbInstanceClient.start_vb_instance` and waits for the :py:class:`~oci.visual_builder.models.WorkRequest`