From 98c0bcc4b2d0169cbd9ebadd19e08a7d50c6d0af Mon Sep 17 00:00:00 2001 From: oci-dex-release-bot Date: Tue, 1 Mar 2022 19:01:44 +0000 Subject: [PATCH] Releasing version 2.59.0 --- CHANGELOG.rst | 18 + THIRD_PARTY_LICENSES.txt | 345 ++++++++++++ docs/api/core.rst | 1 + ...chAllDrgRouteDistributionMatchCriteria.rst | 11 + docs/api/data_science.rst | 2 + ...eJobInfrastructureConfigurationDetails.rst | 11 + ...ce.models.NotebookSessionConfigDetails.rst | 11 + docs/api/database.rst | 2 + ...atabase.models.DbServerPatchingDetails.rst | 11 + ....database.models.EstimatedPatchingTime.rst | 11 + examples/showoci/CHANGELOG.rst | 14 + examples/showoci/showoci.py | 2 +- examples/showoci/showoci_data.py | 177 +++--- examples/showoci/showoci_output.py | 427 +++++++++++++- examples/showoci/showoci_service.py | 522 ++++++++++-------- src/oci/ai_vision/ai_service_vision_client.py | 8 +- src/oci/core/models/__init__.py | 2 + ...d_drg_route_distribution_match_criteria.py | 2 +- ...l_drg_route_distribution_match_criteria.py | 49 ++ ...e_drg_route_distribution_match_criteria.py | 2 +- .../drg_route_distribution_match_criteria.py | 14 +- ...n_drg_attachment_network_create_details.py | 37 +- .../vcn_drg_attachment_network_details.py | 56 +- ...n_drg_attachment_network_update_details.py | 37 +- src/oci/data_science/models/__init__.py | 4 + .../models/create_notebook_session_details.py | 29 +- ...ob_infrastructure_configuration_details.py | 14 +- ...ob_infrastructure_configuration_details.py | 111 ++++ .../data_science/models/notebook_session.py | 27 + .../models/notebook_session_config_details.py | 163 ++++++ .../models/notebook_session_summary.py | 27 + ...ob_infrastructure_configuration_details.py | 2 +- src/oci/database/database_client.py | 88 +++ .../database_client_composite_operations.py | 77 +++ src/oci/database/models/__init__.py | 4 + .../database/models/autonomous_database.py | 101 +++- .../models/autonomous_database_summary.py | 101 +++- .../models/create_autonomous_database_base.py | 35 +- ...reate_autonomous_database_clone_details.py | 7 + .../create_autonomous_database_details.py | 11 +- ...autonomous_database_from_backup_details.py | 7 + ..._database_from_backup_timestamp_details.py | 7 + ..._autonomous_database_data_guard_details.py | 7 + .../create_exadata_infrastructure_details.py | 35 ++ ...hable_autonomous_database_clone_details.py | 7 + src/oci/database/models/db_server.py | 27 + .../models/db_server_patching_details.py | 187 +++++++ src/oci/database/models/db_server_summary.py | 27 + .../models/estimated_patching_time.py | 163 ++++++ .../database/models/exadata_infrastructure.py | 97 ++++ .../models/exadata_infrastructure_summary.py | 97 ++++ src/oci/database/models/maintenance_run.py | 363 +++++++++++- .../models/maintenance_run_summary.py | 363 +++++++++++- src/oci/database/models/maintenance_window.py | 119 ++++ .../update_autonomous_database_details.py | 35 +- .../update_exadata_infrastructure_details.py | 35 ++ .../models/update_maintenance_run_details.py | 130 ++++- .../management_dashboard/dashx_apis_client.py | 31 +- .../create_management_saved_search_details.py | 14 +- .../models/management_saved_search.py | 14 +- ...agement_saved_search_for_import_details.py | 14 +- .../models/management_saved_search_summary.py | 14 +- .../update_management_saved_search_details.py | 14 +- src/oci/version.py | 2 +- 64 files changed, 3990 insertions(+), 392 deletions(-) create mode 100644 docs/api/core/models/oci.core.models.DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria.rst create mode 100644 docs/api/data_science/models/oci.data_science.models.ManagedEgressStandaloneJobInfrastructureConfigurationDetails.rst create mode 100644 docs/api/data_science/models/oci.data_science.models.NotebookSessionConfigDetails.rst create mode 100644 docs/api/database/models/oci.database.models.DbServerPatchingDetails.rst create mode 100644 docs/api/database/models/oci.database.models.EstimatedPatchingTime.rst create mode 100644 src/oci/core/models/drg_attachment_match_all_drg_route_distribution_match_criteria.py create mode 100644 src/oci/data_science/models/managed_egress_standalone_job_infrastructure_configuration_details.py create mode 100644 src/oci/data_science/models/notebook_session_config_details.py create mode 100644 src/oci/database/models/db_server_patching_details.py create mode 100644 src/oci/database/models/estimated_patching_time.py diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 1428180bd9..51aab4a31a 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -3,6 +3,24 @@ Change Log All notable changes to this project will be documented in this file. The format is based on `Keep a Changelog `_. +==================== +2.59.0 - 2022-03-01 +==================== + +Added +----- +* Support for DRG route distribution statements to be specified with a new match type 'MATCH_ALL' for matching criteria in the Networking service +* Support for VCN route types on DRG attachments for deciding whether to import VCN CIDRs or subnet CIDRs into route rules in the Networking service +* Support for CPS offline reports in the Database service +* Support for infrastructure patching v2 features in the Database service +* Support for auto-scaling the storage of an autonomous database, as well as shrinking an autonomous database, in the Database service +* Support for managed egress via a default networking option on jobs and notebooks in the Data Science service +* Support for more types of saved search enums in the Management Dashboard service + +Breaking +-------- +* Support for retries enabled by default on some operations in the AI Vision service + ==================== 2.58.0 - 2022-02-22 ==================== diff --git a/THIRD_PARTY_LICENSES.txt b/THIRD_PARTY_LICENSES.txt index 4c87412f15..29c77621d8 100644 --- a/THIRD_PARTY_LICENSES.txt +++ b/THIRD_PARTY_LICENSES.txt @@ -117,6 +117,36 @@ circuitbreaker * Source code: https://github.com/fabfuel/circuitbreaker * Project home: https://pypi.org/project/circuitbreaker +pycparser +* Copyright (c) 2008-2020, Eli Bendersky All rights reserved. +* License: BSD-3-Clause New License +* Source code: https://github.com/eliben/pycparser +* Project home: https://pypi.org/project/pycparser + +ipaddress +* Copyright +* License: Python Software Foundation License Version 2 +* Source code: https://github.com/phihag/ipaddress +* Project home: https://pypi.org/project/ipaddress + +cffi +* Copyright +* License: The MIT License +* Source code: https://pypi.org/project/cffi/#files +* Project home: https://cffi.readthedocs.io/en/latest + +enum34 +* Copyright (c) 2013, Ethan Furman All rights reserved +* License: BSD-3-Clause New License +* Source code: https://pypi.org/project/enum34/#files +* Project home: https://pypi.org/project/enum34 + +typing +* Copyright +* License: Python Software Foundation License (PSF) +* Source code: https://pypi.org/project/typing/#files +* Project home: https://pypi.org/project/typing + =============================== Licenses =============================== ------------------------------ MIT License ----------------------------- @@ -367,6 +397,10 @@ Copyright 2014 Pallets Copyright (c) 2013-2021, Kim Davies All rights reserved +Copyright (c) 2008-2020, Eli Bendersky All rights reserved + +Copyright (c) 2013, Ethan Furman All rights reserved + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -1209,3 +1243,314 @@ necessary. Here is a sample; alter the names: That's all there is to it! ------------------------------------------------------------------------ +------------ PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 -------------- +This package is a modified version of cpython's ipaddress module. +It is therefore distributed under the PSF license, as follows: + +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved" are +retained in Python alone or in any derivative version prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + +------------------------------------------------------------------------ + +-------------- PYTHON SOFTWARE FOUNDATION LICENSE (PSF) ---------------- +A. HISTORY OF THE SOFTWARE +========================== + +Python was created in the early 1990s by Guido van Rossum at Stichting +Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands +as a successor of a language called ABC. Guido remains Python's +principal author, although it includes many contributions from others. + +In 1995, Guido continued his work on Python at the Corporation for +National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) +in Reston, Virginia where he released several versions of the +software. + +In May 2000, Guido and the Python core development team moved to +BeOpen.com to form the BeOpen PythonLabs team. In October of the same +year, the PythonLabs team moved to Digital Creations (now Zope +Corporation, see http://www.zope.com). In 2001, the Python Software +Foundation (PSF, see http://www.python.org/psf/) was formed, a +non-profit organization created specifically to own Python-related +Intellectual Property. Zope Corporation is a sponsoring member of +the PSF. + +All Python releases are Open Source (see http://www.opensource.org for +the Open Source Definition). Historically, most, but not all, Python +releases have also been GPL-compatible; the table below summarizes +the various releases. + + Release Derived Year Owner GPL- + from compatible? (1) + + 0.9.0 thru 1.2 1991-1995 CWI yes + 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes + 1.6 1.5.2 2000 CNRI no + 2.0 1.6 2000 BeOpen.com no + 1.6.1 1.6 2001 CNRI yes (2) + 2.1 2.0+1.6.1 2001 PSF no + 2.0.1 2.0+1.6.1 2001 PSF yes + 2.1.1 2.1+2.0.1 2001 PSF yes + 2.1.2 2.1.1 2002 PSF yes + 2.1.3 2.1.2 2002 PSF yes + 2.2 and above 2.1.1 2001-now PSF yes + +Footnotes: + +(1) GPL-compatible doesn't mean that we're distributing Python under + the GPL. All Python licenses, unlike the GPL, let you distribute + a modified version without making your changes open source. The + GPL-compatible licenses make it possible to combine Python with + other software that is released under the GPL; the others don't. + +(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, + because its license has a choice of law clause. According to + CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 + is "not incompatible" with the GPL. + +Thanks to the many outside volunteers who have worked under Guido's +direction to make these releases possible. + + +B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON +=============================================================== + +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved" are +retained in Python alone or in any derivative version prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 +------------------------------------------- + +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 +--------------------------------------- + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6.1 software in +source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6.1 +alone or in any derivative version, provided, however, that CNRI's +License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) +1995-2001 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6.1 alone or in any derivative +version prepared by Licensee. Alternately, in lieu of CNRI's License +Agreement, Licensee may substitute the following text (omitting the +quotes): "Python 1.6.1 is made available subject to the terms and +conditions in CNRI's License Agreement. This Agreement together with +Python 1.6.1 may be located on the Internet using the following +unique, persistent identifier (known as a handle): 1895.22/1013. This +Agreement may also be obtained from a proxy server on the Internet +using the following URL: http://hdl.handle.net/1895.22/1013". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6.1 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 1.6.1. + +4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by the federal +intellectual property law of the United States, including without +limitation the federal copyright law, and, to the extent such +U.S. federal law does not apply, by the law of the Commonwealth of +Virginia, excluding Virginia's conflict of law provisions. +Notwithstanding the foregoing, with regard to derivative works based +on Python 1.6.1 that incorporate non-separable material that was +previously distributed under the GNU General Public License (GPL), the +law of the Commonwealth of Virginia shall govern this License +Agreement only as to issues arising under or with respect to +Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this +License Agreement shall be deemed to create any relationship of +agency, partnership, or joint venture between CNRI and Licensee. This +License Agreement does not grant permission to use CNRI trademarks or +trade name in a trademark sense to endorse or promote products or +services of Licensee, or any third party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6.1, Licensee agrees to be +bound by the terms and conditions of this License Agreement. + + ACCEPT + + +CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 +-------------------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +------------------------------------------------------------------------ \ No newline at end of file diff --git a/docs/api/core.rst b/docs/api/core.rst index c76a432a55..205fd83008 100644 --- a/docs/api/core.rst +++ b/docs/api/core.rst @@ -227,6 +227,7 @@ Core Services oci.core.models.DrgAttachment oci.core.models.DrgAttachmentIdDrgRouteDistributionMatchCriteria oci.core.models.DrgAttachmentInfo + oci.core.models.DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria oci.core.models.DrgAttachmentNetworkCreateDetails oci.core.models.DrgAttachmentNetworkDetails oci.core.models.DrgAttachmentNetworkUpdateDetails diff --git a/docs/api/core/models/oci.core.models.DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria.rst b/docs/api/core/models/oci.core.models.DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria.rst new file mode 100644 index 0000000000..1c5c4fb3f5 --- /dev/null +++ b/docs/api/core/models/oci.core.models.DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria.rst @@ -0,0 +1,11 @@ +DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria +====================================================== + +.. currentmodule:: oci.core.models + +.. autoclass:: DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria + :show-inheritance: + :special-members: __init__ + :members: + :undoc-members: + :inherited-members: \ No newline at end of file diff --git a/docs/api/data_science.rst b/docs/api/data_science.rst index 92459923ab..e8373e31d2 100644 --- a/docs/api/data_science.rst +++ b/docs/api/data_science.rst @@ -46,6 +46,7 @@ Data Science oci.data_science.models.JobShapeSummary oci.data_science.models.JobSummary oci.data_science.models.LogDetails + oci.data_science.models.ManagedEgressStandaloneJobInfrastructureConfigurationDetails oci.data_science.models.Metadata oci.data_science.models.Model oci.data_science.models.ModelConfigurationDetails @@ -56,6 +57,7 @@ Data Science oci.data_science.models.ModelProvenance oci.data_science.models.ModelSummary oci.data_science.models.NotebookSession + oci.data_science.models.NotebookSessionConfigDetails oci.data_science.models.NotebookSessionConfigurationDetails oci.data_science.models.NotebookSessionShapeConfigDetails oci.data_science.models.NotebookSessionShapeSummary diff --git a/docs/api/data_science/models/oci.data_science.models.ManagedEgressStandaloneJobInfrastructureConfigurationDetails.rst b/docs/api/data_science/models/oci.data_science.models.ManagedEgressStandaloneJobInfrastructureConfigurationDetails.rst new file mode 100644 index 0000000000..4b420d8d8e --- /dev/null +++ b/docs/api/data_science/models/oci.data_science.models.ManagedEgressStandaloneJobInfrastructureConfigurationDetails.rst @@ -0,0 +1,11 @@ +ManagedEgressStandaloneJobInfrastructureConfigurationDetails +============================================================ + +.. currentmodule:: oci.data_science.models + +.. autoclass:: ManagedEgressStandaloneJobInfrastructureConfigurationDetails + :show-inheritance: + :special-members: __init__ + :members: + :undoc-members: + :inherited-members: \ No newline at end of file diff --git a/docs/api/data_science/models/oci.data_science.models.NotebookSessionConfigDetails.rst b/docs/api/data_science/models/oci.data_science.models.NotebookSessionConfigDetails.rst new file mode 100644 index 0000000000..9978cdd124 --- /dev/null +++ b/docs/api/data_science/models/oci.data_science.models.NotebookSessionConfigDetails.rst @@ -0,0 +1,11 @@ +NotebookSessionConfigDetails +============================ + +.. currentmodule:: oci.data_science.models + +.. autoclass:: NotebookSessionConfigDetails + :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 747b66b87d..fcbb286130 100644 --- a/docs/api/database.rst +++ b/docs/api/database.rst @@ -161,6 +161,7 @@ Database oci.database.models.DbNodeSummary oci.database.models.DbServer oci.database.models.DbServerDetails + oci.database.models.DbServerPatchingDetails oci.database.models.DbServerSummary oci.database.models.DbSystem oci.database.models.DbSystemOptions @@ -176,6 +177,7 @@ Database oci.database.models.EnableExternalNonContainerDatabaseOperationsInsightsDetails oci.database.models.EnableExternalPluggableDatabaseDatabaseManagementDetails oci.database.models.EnableExternalPluggableDatabaseOperationsInsightsDetails + oci.database.models.EstimatedPatchingTime oci.database.models.ExadataDbSystemMigration oci.database.models.ExadataDbSystemMigrationSummary oci.database.models.ExadataInfrastructure diff --git a/docs/api/database/models/oci.database.models.DbServerPatchingDetails.rst b/docs/api/database/models/oci.database.models.DbServerPatchingDetails.rst new file mode 100644 index 0000000000..a3b8e1448b --- /dev/null +++ b/docs/api/database/models/oci.database.models.DbServerPatchingDetails.rst @@ -0,0 +1,11 @@ +DbServerPatchingDetails +======================= + +.. currentmodule:: oci.database.models + +.. autoclass:: DbServerPatchingDetails + :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.EstimatedPatchingTime.rst b/docs/api/database/models/oci.database.models.EstimatedPatchingTime.rst new file mode 100644 index 0000000000..5220121ee2 --- /dev/null +++ b/docs/api/database/models/oci.database.models.EstimatedPatchingTime.rst @@ -0,0 +1,11 @@ +EstimatedPatchingTime +===================== + +.. currentmodule:: oci.database.models + +.. autoclass:: EstimatedPatchingTime + :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 2d552b79fa..3ab1784fa7 100644 --- a/examples/showoci/CHANGELOG.rst +++ b/examples/showoci/CHANGELOG.rst @@ -4,6 +4,20 @@ All notable changes to this project will be documented in this file. The format is based on `Keep a Changelog `_. +===================== +22.02.22 - 22.02.22 +===================== +* Added Support for ExaCS and ExaCC VMclusters in different compartment +* Added CSV for PaaS OAC +* Added CSV for PaaS OIC +* Added CSV for PaaS OCVS +* Added CSV for PaaS OCE +* Added CSV for PaaS Data Science +* Added CSV for PaaS Data Flow +* Added CSV for PaaS Data Catalog +* Added CSV for Big Data Service +* Added CSV for Digital Assistance + ===================== 22.02.08 - 22.02.08 ===================== diff --git a/examples/showoci/showoci.py b/examples/showoci/showoci.py index b6a13f2717..154da12fc2 100644 --- a/examples/showoci/showoci.py +++ b/examples/showoci/showoci.py @@ -96,7 +96,7 @@ import argparse import datetime -version = "22.02.08" +version = "22.02.22" ########################################################################## # check OCI version diff --git a/examples/showoci/showoci_data.py b/examples/showoci/showoci_data.py index b967b22aeb..cbf0efd659 100644 --- a/examples/showoci/showoci_data.py +++ b/examples/showoci/showoci_data.py @@ -351,7 +351,6 @@ def __get_oci_region_data(self, region_name): value = self.__get_data_ai_main(region_name, compartment) if value is not None: if len(value) > 0: - data['data_ai'] = value data['data_ai'] = value has_data = True @@ -2189,57 +2188,60 @@ def __get_database_db_exadata(self, region_name, compartment): 'vm_clusters': [] } - for vm in dbs['vm_clusters']: - valvm = { - 'id': vm['id'], - 'cluster_name': vm['cluster_name'], - 'hostname': vm['hostname'], - 'compartment_id': vm['compartment_id'], - 'availability_domain': vm['availability_domain'], - 'data_subnet_id': vm['data_subnet_id'], - 'data_subnet': vm['data_subnet'], - 'backup_subnet_id': vm['backup_subnet_id'], - 'backup_subnet': vm['backup_subnet'], - 'nsg_ids': vm['nsg_ids'], - 'backup_network_nsg_ids': vm['backup_network_nsg_ids'], - 'last_update_history_entry_id': vm['last_update_history_entry_id'], - 'shape': vm['shape'], - 'listener_port': vm['listener_port'], - 'lifecycle_state': vm['lifecycle_state'], - 'node_count': vm['node_count'], - 'storage_size_in_gbs': vm['storage_size_in_gbs'], - 'display_name': vm['display_name'], - 'time_created': vm['time_created'], - 'lifecycle_details': vm['lifecycle_details'], - 'time_zone': vm['time_zone'], - 'domain': vm['domain'], - 'cpu_core_count': vm['cpu_core_count'], - 'data_storage_percentage': vm['data_storage_percentage'], - 'is_local_backup_enabled': vm['is_local_backup_enabled'], - 'is_sparse_diskgroup_enabled': vm['is_sparse_diskgroup_enabled'], - 'gi_version': vm['gi_version'], - 'system_version': vm['system_version'], - 'ssh_public_keys': vm['ssh_public_keys'], - 'license_model': vm['license_model'], - 'disk_redundancy': vm['disk_redundancy'], - 'scan_ip_ids': vm['scan_ip_ids'], - 'scan_ips': vm['scan_ips'], - 'vip_ids': vm['vip_ids'], - 'vip_ips': vm['vip_ips'], - 'scan_dns_record_id': vm['scan_dns_record_id'], - 'defined_tags': vm['defined_tags'], - 'freeform_tags': vm['freeform_tags'], - 'region_name': vm['region_name'], - 'sum_info': 'Database XP - ' + dbs['shape'] + " - " + vm['license_model'], - 'sum_info_storage': 'Database - Storage (GB)', - 'sum_size_gb': vm['storage_size_in_gbs'], - 'patches': self.__get_database_db_patches(vm['patches']), - 'db_homes': self.__get_database_db_homes(vm['db_homes']), - 'db_nodes': self.__get_database_db_nodes(vm['db_nodes']), - 'zone_id': vm['zone_id'], - 'scan_dns_name': vm['scan_dns_name'] - } - value['vm_clusters'].append(valvm) + list_vms = self.service.search_multi_items(self.service.C_DATABASE, self.service.C_DATABASE_EXADATA_VMS, 'region_name', region_name, 'cloud_exadata_infrastructure_id', dbs['id']) + if list_vms: + for vm in list_vms: + valvm = { + 'id': vm['id'], + 'cluster_name': vm['cluster_name'], + 'hostname': vm['hostname'], + 'compartment_id': vm['compartment_id'], + 'availability_domain': vm['availability_domain'], + 'data_subnet_id': vm['data_subnet_id'], + 'data_subnet': vm['data_subnet'], + 'backup_subnet_id': vm['backup_subnet_id'], + 'backup_subnet': vm['backup_subnet'], + 'nsg_ids': vm['nsg_ids'], + 'backup_network_nsg_ids': vm['backup_network_nsg_ids'], + 'last_update_history_entry_id': vm['last_update_history_entry_id'], + 'shape': vm['shape'], + 'listener_port': vm['listener_port'], + 'lifecycle_state': vm['lifecycle_state'], + 'node_count': vm['node_count'], + 'storage_size_in_gbs': vm['storage_size_in_gbs'], + 'display_name': vm['display_name'], + 'time_created': vm['time_created'], + 'lifecycle_details': vm['lifecycle_details'], + 'time_zone': vm['time_zone'], + 'domain': vm['domain'], + 'cpu_core_count': vm['cpu_core_count'], + 'data_storage_percentage': vm['data_storage_percentage'], + 'is_local_backup_enabled': vm['is_local_backup_enabled'], + 'is_sparse_diskgroup_enabled': vm['is_sparse_diskgroup_enabled'], + 'gi_version': vm['gi_version'], + 'system_version': vm['system_version'], + 'ssh_public_keys': vm['ssh_public_keys'], + 'license_model': vm['license_model'], + 'disk_redundancy': vm['disk_redundancy'], + 'scan_ip_ids': vm['scan_ip_ids'], + 'scan_ips': vm['scan_ips'], + 'vip_ids': vm['vip_ids'], + 'vip_ips': vm['vip_ips'], + 'scan_dns_record_id': vm['scan_dns_record_id'], + 'defined_tags': vm['defined_tags'], + 'freeform_tags': vm['freeform_tags'], + 'sum_info': 'Database XP - ' + dbs['shape'] + " - " + vm['license_model'], + 'sum_info_storage': 'Database - Storage (GB)', + 'sum_size_gb': vm['storage_size_in_gbs'], + 'patches': self.__get_database_db_patches(vm['patches']), + 'db_homes': self.__get_database_db_homes(vm['db_homes']), + 'db_nodes': self.__get_database_db_nodes(vm['db_nodes']), + 'zone_id': vm['zone_id'], + 'scan_dns_name': vm['scan_dns_name'], + 'compartment_name': vm['compartment_name'], + 'region_name': vm['region_name'] + } + value['vm_clusters'].append(valvm) data.append(value) return data @@ -2305,38 +2307,42 @@ def __get_database_db_exacc(self, region_name, compartment): 'name': dbs['display_name'] + " - " + dbs['shape'] + " - " + dbs['lifecycle_state'] } - for vm in dbs['vm_clusters']: - valvm = { - 'id': vm['id'], - 'last_patch_history_entry_id': vm['last_patch_history_entry_id'], - 'lifecycle_state': vm['lifecycle_state'], - 'display_name': vm['display_name'], - 'time_created': vm['time_created'], - 'lifecycle_details': vm['lifecycle_details'], - 'time_zone': vm['time_zone'], - 'is_local_backup_enabled': vm['is_local_backup_enabled'], - 'exadata_infrastructure_id': vm['exadata_infrastructure_id'], - 'is_sparse_diskgroup_enabled': vm['is_sparse_diskgroup_enabled'], - 'vm_cluster_network_id': vm['vm_cluster_network_id'], - 'cpus_enabled': vm['cpus_enabled'], - 'memory_size_in_gbs': vm['memory_size_in_gbs'], - 'db_node_storage_size_in_gbs': vm['db_node_storage_size_in_gbs'], - 'data_storage_size_in_tbs': vm['data_storage_size_in_tbs'], - 'shape': vm['shape'], - 'gi_version': vm['gi_version'], - 'system_version': vm['system_version'], - 'license_model': vm['license_model'], - 'defined_tags': vm['defined_tags'], - 'freeform_tags': vm['freeform_tags'], - 'region_name': vm['region_name'], - 'sum_info': 'Database ExaCC - ' + dbs['shape'] + " - " + vm['license_model'], - 'sum_info_storage': 'Database - Storage (GB)', - 'sum_size_gb': vm['db_node_storage_size_in_gbs'], - 'patches': self.__get_database_db_patches(vm['patches']), - 'db_homes': self.__get_database_db_homes(vm['db_homes']), - 'db_nodes': self.__get_database_db_nodes(vm['db_nodes']) - } - value['vm_clusters'].append(valvm) + list_vms = self.service.search_multi_items(self.service.C_DATABASE, self.service.C_DATABASE_EXACC_VMS, 'region_name', region_name, 'exadata_infrastructure_id', dbs['id']) + if list_vms: + for vm in list_vms: + valvm = { + 'id': vm['id'], + 'last_patch_history_entry_id': vm['last_patch_history_entry_id'], + 'lifecycle_state': vm['lifecycle_state'], + 'display_name': vm['display_name'], + 'time_created': vm['time_created'], + 'lifecycle_details': vm['lifecycle_details'], + 'time_zone': vm['time_zone'], + 'is_local_backup_enabled': vm['is_local_backup_enabled'], + 'exadata_infrastructure_id': vm['exadata_infrastructure_id'], + 'is_sparse_diskgroup_enabled': vm['is_sparse_diskgroup_enabled'], + 'vm_cluster_network_id': vm['vm_cluster_network_id'], + 'cpus_enabled': vm['cpus_enabled'], + 'memory_size_in_gbs': vm['memory_size_in_gbs'], + 'db_node_storage_size_in_gbs': vm['db_node_storage_size_in_gbs'], + 'data_storage_size_in_tbs': vm['data_storage_size_in_tbs'], + 'shape': vm['shape'], + 'gi_version': vm['gi_version'], + 'system_version': vm['system_version'], + 'license_model': vm['license_model'], + 'defined_tags': vm['defined_tags'], + 'freeform_tags': vm['freeform_tags'], + 'sum_info': 'Database ExaCC - ' + dbs['shape'] + " - " + vm['license_model'], + 'sum_info_storage': 'Database - Storage (GB)', + 'sum_size_gb': vm['db_node_storage_size_in_gbs'], + 'patches': self.__get_database_db_patches(vm['patches']), + 'db_homes': self.__get_database_db_homes(vm['db_homes']), + 'db_nodes': self.__get_database_db_nodes(vm['db_nodes']), + 'compartment_name': vm['compartment_name'], + 'compartment_id': vm['compartment_id'], + 'region_name': vm['region_name'] + } + value['vm_clusters'].append(valvm) data.append(value) return data @@ -2569,6 +2575,7 @@ def __get_database_adb_dedicated(self, region_name, compartment): 'subnet_id': infra['subnet_id'], 'subnet_name': infra['subnet_name'], 'nsg_ids': infra['nsg_ids'], + 'nsg_names': [], 'shape': infra['shape'], 'shape_ocpu': infra['shape_ocpu'], 'shape_memory_gb': infra['shape_memory_gb'], @@ -2627,7 +2634,7 @@ def __get_database_adb_dedicated(self, region_name, compartment): return data except Exception as e: - self.__print_error("__get_database_adb_d_infrastructure", e) + self.__print_error("__get_database_adb_dedicated", e) return data ########################################################################## diff --git a/examples/showoci/showoci_output.py b/examples/showoci/showoci_output.py index d1b0aef7a9..be998848c2 100644 --- a/examples/showoci/showoci_output.py +++ b/examples/showoci/showoci_output.py @@ -3405,6 +3405,15 @@ class ShowOCICSV(object): csv_edge_healthcheck = [] csv_apigw = [] csv_limits = [] + csv_paas_oac = [] + csv_paas_oic = [] + csv_paas_ocvs = [] + csv_paas_oce = [] + csv_data_ai_oda = [] + csv_data_ai_bds = [] + csv_data_science = [] + csv_data_flow = [] + csv_data_catalog = [] start_time = "" csv_add_date_field = True @@ -3473,6 +3482,15 @@ def generate_csv(self, data, csv_file_header, add_date_field=True): self.__export_to_csv_file("edge_dns_steering_policies", self.csv_edge_dns_steering_policies) self.__export_to_csv_file("edge_waas_policies", self.csv_edge_waas_policies) self.__export_to_csv_file("edge_healthchecks", self.csv_edge_healthcheck) + self.__export_to_csv_file("paas_oac", self.csv_paas_oac) + self.__export_to_csv_file("paas_oic", self.csv_paas_oic) + self.__export_to_csv_file("paas_ocvs_vmware", self.csv_paas_ocvs) + self.__export_to_csv_file("paas_oce", self.csv_paas_oce) + self.__export_to_csv_file("data_science", self.csv_data_science) + self.__export_to_csv_file("data_flow", self.csv_data_flow) + self.__export_to_csv_file("data_catalog", self.csv_data_catalog) + self.__export_to_csv_file("digital_assistance", self.csv_data_ai_oda) + self.__export_to_csv_file("big_data_service", self.csv_data_ai_bds) print("") except Exception as e: @@ -3521,7 +3539,7 @@ def __export_to_csv_file(self, file_subject, data): for row in result: writer.writerow(row) - print("CSV: " + file_subject.ljust(22) + " --> " + file_name) + print("CSV: " + file_subject.ljust(24) + " --> " + file_name) except Exception as e: raise Exception("Error in __export_to_csv_file: " + str(e.args)) @@ -3555,6 +3573,22 @@ def __get_defined_tags(self, defined_tags): except Exception as e: self.__print_error("__get_defined_tags", e) + ########################################################################## + # extract freeform tags + ########################################################################## + def __get_freeform_tags(self, freeform_tag): + + try: + if not freeform_tag: + return "" + + ret_str = str(', '.join(key + "=" + freeform_tag[key] for key in freeform_tag.keys())) + + return ret_str + + except Exception as e: + self.__print_error("__get_freeform_tags", e) + ########################################################################## # check if managed paas compartment ########################################################################## @@ -3986,6 +4020,7 @@ def __csv_database_db_system(self, region_name, list_db_systems): 'status': dbs['lifecycle_state'], 'type': "DB System", 'name': dbs['display_name'], + 'vm_name': dbs['display_name'], 'shape': dbs['shape'], 'cpu_core_count': dbs['cpu_core_count'], 'db_storage_gb': dbs['sum_size_gb'], @@ -4046,11 +4081,12 @@ def __csv_database_db_system(self, region_name, list_db_systems): 'scan_ips': str(', '.join(x for x in dbs['scan_ips'])), 'vip_ips': str(', '.join(x for x in dbs['vip_ips'])), 'cluster_name': dbs['cluster_name'], + 'vm_name': dbs['display_name'], 'time_created': dbs['time_created'][0:16], 'domain': dbs['domain'], 'db_nodes': str(', '.join(x['desc'] for x in dbs['db_nodes'])), - 'freeform_tags': str(', '.join(key + "=" + dbs['freeform_tags'][key] for key in dbs['freeform_tags'].keys())), - 'defined_tags': self.__get_defined_tags(dbs['defined_tags']), + 'freeform_tags': str(', '.join(key + "=" + db['freeform_tags'][key] for key in db['freeform_tags'].keys())), + 'defined_tags': self.__get_defined_tags(db['defined_tags']), 'database_id': db['id'], 'dbsystem_id': dbs['id'], 'db_home': db_home['home_name'], @@ -4089,10 +4125,11 @@ def __csv_database_db_exadata(self, region_name, list_exa): # Db Exa CSV dbsd = {'region_name': region_name, 'availability_domain': dbs['availability_domain'], - 'compartment_name': dbs['compartment_name'], + 'compartment_name': vm['compartment_name'], 'status': dbs['lifecycle_state'], 'type': "ExaCS", 'name': dbs['display_name'], + 'vm_name': vm['display_name'], 'shape': dbs['shape'], 'cpu_core_count': vm['cpu_core_count'], 'db_storage_gb': vm['sum_size_gb'], @@ -4152,11 +4189,12 @@ def __csv_database_db_exadata(self, region_name, list_exa): 'scan_ips': str(', '.join(x for x in vm['scan_ips'])), 'vip_ips': str(', '.join(x for x in vm['vip_ips'])), 'cluster_name': vm['cluster_name'], + 'vm_name': vm['display_name'], 'time_created': vm['time_created'][0:16], 'domain': vm['domain'], 'db_nodes': str(', '.join(x['desc'] for x in vm['db_nodes'])), - 'freeform_tags': str(', '.join(key + "=" + vm['freeform_tags'][key] for key in vm['freeform_tags'].keys())), - 'defined_tags': self.__get_defined_tags(vm['defined_tags']), + 'freeform_tags': str(', '.join(key + "=" + db['freeform_tags'][key] for key in db['freeform_tags'].keys())), + 'defined_tags': self.__get_defined_tags(db['defined_tags']), 'database_id': db['id'], 'dbsystem_id': vm['id'], 'db_home': db_home['home_name'], @@ -4195,10 +4233,11 @@ def __csv_database_db_exacc(self, region_name, list_exa): # Db Exa CSV dbsd = {'region_name': region_name, 'availability_domain': 'ExaCC', - 'compartment_name': dbs['compartment_name'], + 'compartment_name': vm['compartment_name'], 'status': dbs['lifecycle_state'], 'type': "ExaCC", 'name': dbs['display_name'], + 'vm_name': vm['display_name'], 'shape': dbs['shape'], 'cpu_core_count': vm['cpus_enabled'], 'db_storage_gb': vm['db_node_storage_size_in_gbs'], @@ -4214,7 +4253,7 @@ def __csv_database_db_exacc(self, region_name, list_exa): 'backup_subnet': "", 'scan_ips': "", 'vip_ips': "", - 'cluster_name': "", + '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'])), @@ -4257,12 +4296,13 @@ def __csv_database_db_exacc(self, region_name, list_exa): 'backup_subnet': "", 'scan_ips': "", 'vip_ips': "", - 'cluster_name': "", + 'cluster_name': vm['display_name'], + 'vm_name': vm['display_name'], 'time_created': vm['time_created'][0:16], 'domain': "", 'db_nodes': str(', '.join(x['desc'] for x in vm['db_nodes'])), - 'freeform_tags': str(', '.join(key + "=" + vm['freeform_tags'][key] for key in vm['freeform_tags'].keys())), - 'defined_tags': self.__get_defined_tags(vm['defined_tags']), + 'freeform_tags': str(', '.join(key + "=" + db['freeform_tags'][key] for key in db['freeform_tags'].keys())), + 'defined_tags': self.__get_defined_tags(db['defined_tags']), 'database_id': db['id'], 'dbsystem_id': vm['id'], 'db_home': db_home['home_name'], @@ -4316,6 +4356,7 @@ def __csv_database_db_autonomous(self, region_name, databases): 'backup_subnet': "", 'scan_ips': "", 'vip_ips': "", + 'vm_name': "", 'cluster_name': "", 'time_created': dbs['time_created'], 'domain': "", @@ -5069,7 +5110,7 @@ def __csv_container(self, region_name, containers): self.__print_error("__csv_container", e) ########################################################################## - # csv Security + # csv edge ########################################################################## def __csv_edge_main(self, region_name, data): @@ -5203,6 +5244,364 @@ def __csv_edge_healthcheck(self, region_name, healthchecks): except Exception as e: self.__print_error("__csv_edge_healthcheck", e) + ########################################################################## + # Paas OIC + ########################################################################## + def __csv_paas_oic(self, region_name, services): + try: + + if len(services) == 0: + return + + if services: + for ar in services: + + data = { + 'region_name': region_name, + 'compartment_name': ar['compartment_name'], + 'name': ar['display_name'], + 'time_created': ar['time_created'][0:16], + 'lifecycle_state': ar['lifecycle_state'], + 'instance_url': ar['instance_url'], + 'message_packs': ar['message_packs'], + 'is_byol': ar['is_byol'], + 'is_file_server_enabled': ar['is_file_server_enabled'], + 'consumption_model': ar['consumption_model'], + 'freeform_tags': self.__get_freeform_tags(ar['freeform_tags']), + 'defined_tags': self.__get_defined_tags(ar['defined_tags']), + 'id': ar['id'] + } + + self.csv_paas_oic.append(data) + + except Exception as e: + self.__print_error("__csv_paas_oic", e) + + ########################################################################## + # Paas OAC + ########################################################################## + def __csv_paas_oac(self, region_name, services): + try: + + if len(services) == 0: + return + + if services: + for ar in services: + + data = { + 'region_name': region_name, + 'compartment_name': ar['compartment_name'], + 'name': ar['name'], + 'time_created': ar['time_created'][0:16], + 'lifecycle_state': ar['lifecycle_state'], + 'feature_set': ar['feature_set'], + 'license_type': ar['license_type'], + 'capacity_type': ar['capacity_type'], + 'capacity_value': ar['capacity_value'], + 'email_notification': ar['email_notification'], + 'service_url': ar['service_url'], + 'vanity_domain': ar['vanity_domain'], + 'vanity_url': ar['vanity_url'], + 'network_endpoint_details': ar['network_endpoint_details'], + 'freeform_tags': self.__get_freeform_tags(ar['freeform_tags']), + 'defined_tags': self.__get_defined_tags(ar['defined_tags']), + 'id': ar['id'] + } + + self.csv_paas_oac.append(data) + + except Exception as e: + self.__print_error("__csv_paas_oac", e) + + ########################################################################## + # Paas OCE + ########################################################################## + def __csv_paas_oce(self, region_name, services): + try: + + if len(services) == 0: + return + + if services: + for ar in services: + + data = { + 'region_name': region_name, + 'compartment_name': ar['compartment_name'], + 'name': ar['name'], + 'description': ar['description'], + 'guid': ar['guid'], + 'tenancy_name': ar['tenancy_name'], + 'idcs_tenancy': ar['idcs_tenancy'], + 'object_storage_namespace': ar['object_storage_namespace'], + 'admin_email': ar['admin_email'], + 'time_created': ar['time_created'][0:16], + 'lifecycle_state': ar['lifecycle_state'], + 'service': ar['service'], + 'freeform_tags': self.__get_freeform_tags(ar['freeform_tags']), + 'defined_tags': self.__get_defined_tags(ar['defined_tags']), + 'id': ar['id'] + } + + self.csv_paas_oce.append(data) + + except Exception as e: + self.__print_error("__csv_paas_oce", e) + + ########################################################################## + # Paas OCVS + ########################################################################## + def __csv_paas_ocvs(self, region_name, services): + try: + + if len(services) == 0: + return + + if services: + for ar in services: + + data = { + 'region_name': region_name, + 'compartment_name': ar['compartment_name'], + 'name': ar['display_name'], + 'compute_availability_domain': ar['compute_availability_domain'], + 'instance_display_name_prefix': ar['instance_display_name_prefix'], + 'vmware_software_version': ar['vmware_software_version'], + 'esxi_hosts_count': ar['esxi_hosts_count'], + 'nsx_manager_fqdn': ar['nsx_manager_fqdn'], + 'nsx_manager_private_ip': ar['nsx_manager_private_ip'], + 'vcenter_fqdn': ar['vcenter_fqdn'], + 'vcenter_private_ip': ar['vcenter_private_ip'], + 'workload_network_cidr': ar['workload_network_cidr'], + 'nsx_overlay_segment_name': ar['nsx_overlay_segment_name'], + 'nsx_edge_uplink_ip': ar['nsx_edge_uplink_ip'], + 'provisioning_subnet': ar['provisioning_subnet'], + 'vsphere_vlan': ar['vsphere_vlan'], + 'vmotion_vlan': ar['vmotion_vlan'], + 'vsan_vlan': ar['vsan_vlan'], + 'nsx_v_tep_vlan': ar['nsx_v_tep_vlan'], + 'nsx_edge_v_tep_vlan': ar['nsx_edge_v_tep_vlan'], + 'nsx_edge_uplink1_vlan': ar['nsx_edge_uplink1_vlan'], + 'nsx_edge_uplink2_vlan': ar['nsx_edge_uplink2_vlan'], + 'hcx_fqdn': ar['hcx_fqdn'], + 'is_hcx_enabled': ar['is_hcx_enabled'], + 'time_created': ar['time_created'][0:16], + 'exsi_hosts': str(', '.join(x['display_name'] + " - " + x['current_sku'] for x in ar['esxihosts'])), + 'lifecycle_state': ar['lifecycle_state'], + 'freeform_tags': self.__get_freeform_tags(ar['freeform_tags']), + 'defined_tags': self.__get_defined_tags(ar['defined_tags']), + 'id': ar['id'] + } + + self.csv_paas_ocvs.append(data) + + except Exception as e: + self.__print_error("__csv_paas_ocvs", e) + + ########################################################################## + # csv paas + ########################################################################## + def __csv_paas_main(self, region_name, data): + + try: + if len(data) == 0: + return + + if 'oic' in data: + self.__csv_paas_oic(region_name, data['oic']) + + if 'oac' in data: + self.__csv_paas_oac(region_name, data['oac']) + + if 'oce' in data: + self.__csv_paas_oce(region_name, data['oce']) + + if 'ocvs' in data: + self.__csv_paas_ocvs(region_name, data['ocvs']) + + except Exception as e: + self.__print_error("__csv_paas_main", e) + + ########################################################################## + # csv data_ai + ########################################################################## + def __csv_data_ai_main(self, region_name, data): + + try: + if len(data) == 0: + return + + if 'oda' in data: + self.__csv_data_ai_oda(region_name, data['oda']) + + if 'bds' in data: + self.__csv_data_ai_bds(region_name, data['bds']) + + if 'data_science' in data: + self.__csv_data_science(region_name, data['data_science']) + + if 'data_flow' in data: + self.__csv_data_flow(region_name, data['data_flow']) + + if 'data_catalog' in data: + self.__csv_data_catalog(region_name, data['data_catalog']) + + except Exception as e: + self.__print_error("__csv_data_ai_main", e) + + ########################################################################## + # Data AI ODA + ########################################################################## + def __csv_data_ai_oda(self, region_name, services): + try: + + if len(services) == 0: + return + + if services: + for ar in services: + + data = { + 'region_name': region_name, + 'compartment_name': ar['compartment_name'], + 'name': ar['display_name'], + 'description': ar['description'], + 'shape_name': ar['shape_name'], + 'lifecycle_state': ar['lifecycle_state'], + 'time_created': ar['time_created'][0:16], + 'freeform_tags': self.__get_freeform_tags(ar['freeform_tags']), + 'defined_tags': self.__get_defined_tags(ar['defined_tags']), + 'id': ar['id'] + } + + self.csv_data_ai_oda.append(data) + + except Exception as e: + self.__print_error("__csv_data_ai_oda", e) + + ########################################################################## + # Data AI BDS + ########################################################################## + def __csv_data_ai_bds(self, region_name, services): + try: + + if len(services) == 0: + return + + if services: + for ar in services: + + data = { + 'region_name': region_name, + 'compartment_name': ar['compartment_name'], + 'name': ar['display_name'], + 'number_of_nodes': ar['number_of_nodes'], + 'is_high_availability': ar['is_high_availability'], + 'cluster_version': ar['cluster_version'], + 'is_secure': ar['is_secure'], + 'is_cloud_sql_configured': ar['is_cloud_sql_configured'], + 'lifecycle_state': ar['lifecycle_state'], + 'time_created': ar['time_created'][0:16], + 'freeform_tags': self.__get_freeform_tags(ar['freeform_tags']), + 'defined_tags': self.__get_defined_tags(ar['defined_tags']), + 'id': ar['id'] + } + + self.csv_data_ai_bds.append(data) + + except Exception as e: + self.__print_error("__csv_data_ai_bds", e) + + ########################################################################## + # Data Flow + ########################################################################## + def __csv_data_flow(self, region_name, services): + try: + + if len(services) == 0: + return + + if services: + for ar in services: + + data = { + 'region_name': region_name, + 'compartment_name': ar['compartment_name'], + 'name': ar['display_name'], + 'language': ar['language'], + 'lifecycle_state': ar['lifecycle_state'], + 'owner_principal_id': ar['owner_principal_id'], + 'owner_user_name': ar['owner_user_name'], + 'time_created': ar['time_created'][0:16], + 'freeform_tags': self.__get_freeform_tags(ar['freeform_tags']), + 'defined_tags': self.__get_defined_tags(ar['defined_tags']), + 'id': ar['id'] + } + + self.csv_data_flow.append(data) + + except Exception as e: + self.__print_error("__csv_data_flow", e) + + ########################################################################## + # Data Catalog + ########################################################################## + def __csv_data_catalog(self, region_name, services): + try: + + if len(services) == 0: + return + + if services: + for ar in services: + + data = { + 'region_name': region_name, + 'compartment_name': ar['compartment_name'], + 'name': ar['display_name'], + 'time_created': ar['time_created'][0:16], + 'number_of_objects': ar['number_of_objects'], + 'lifecycle_state': ar['lifecycle_state'], + 'freeform_tags': self.__get_freeform_tags(ar['freeform_tags']), + 'defined_tags': self.__get_defined_tags(ar['defined_tags']), + 'id': ar['id'] + } + + self.csv_data_catalog.append(data) + + except Exception as e: + self.__print_error("__csv_data_catalog", e) + + ########################################################################## + # Data Science + ########################################################################## + def __csv_data_science(self, region_name, services): + try: + + if len(services) == 0: + return + + if services: + for ar in services: + + data = { + 'region_name': region_name, + 'compartment_name': ar['compartment_name'], + 'name': ar['display_name'], + 'description': ar['description'], + 'time_created': ar['time_created'][0:16], + 'lifecycle_state': ar['lifecycle_state'], + 'freeform_tags': self.__get_freeform_tags(ar['freeform_tags']), + 'defined_tags': self.__get_defined_tags(ar['defined_tags']), + 'id': ar['id'] + } + + self.csv_data_science.append(data) + + except Exception as e: + self.__print_error("__csv_data_science", e) + ########################################################################## # Print Identity data ########################################################################## @@ -5233,6 +5632,10 @@ def __csv_region_data(self, region_name, data): self.__csv_container(region_name, cdata['containers']) if 'edge_services' in cdata: self.__csv_edge_main(region_name, cdata['edge_services']) + if 'paas_services' in cdata: + self.__csv_paas_main(region_name, cdata['paas_services']) + if 'data_ai' in cdata: + self.__csv_data_ai_main(region_name, cdata['data_ai']) except Exception as e: self.__print_error("__csv_region_data", e) diff --git a/examples/showoci/showoci_service.py b/examples/showoci/showoci_service.py index e051b7a4e9..1c36a69655 100644 --- a/examples/showoci/showoci_service.py +++ b/examples/showoci/showoci_service.py @@ -233,7 +233,9 @@ class ShowOCIService(object): C_DATABASE = "database" C_DATABASE_DBSYSTEMS = "dbsystems" C_DATABASE_EXADATA = "exadata" + C_DATABASE_EXADATA_VMS = "exadata_vmclusters" C_DATABASE_EXACC = "exacc" + C_DATABASE_EXACC_VMS = "exacc_vmclusters" C_DATABASE_ADB_DATABASE = "autonomous" C_DATABASE_ADB_D_INFRA = "autonomous_dedicated_infrastructure" C_DATABASE_NOSQL = "nosql" @@ -818,7 +820,7 @@ def __print_error(self, msg, e): # check service error to warn instead of error ########################################################################## def __check_service_error(self, code): - return 'max retries exceeded' in str(code).lower() or 'auth' in str(code).lower() or 'notfound' in str(code).lower() or code == 'Forbidden' or code == 'TooManyRequests' or code == 'IncorrectState' or code == 'LimitExceeded' + return 'Remote end closed' in str(code).lower() or 'max retries exceeded' in str(code).lower() or 'auth' in str(code).lower() or 'aborted' in str(code).lower() or 'notfound' in str(code).lower() or code == 'Forbidden' or code == 'TooManyRequests' or code == 'IncorrectState' or code == 'LimitExceeded' ########################################################################## # check request error if service not exists for region @@ -6627,7 +6629,9 @@ def __load_database_main(self): # add the key if not exists self.__initialize_data_key(self.C_DATABASE, self.C_DATABASE_DBSYSTEMS) self.__initialize_data_key(self.C_DATABASE, self.C_DATABASE_EXADATA) + self.__initialize_data_key(self.C_DATABASE, self.C_DATABASE_EXADATA_VMS) self.__initialize_data_key(self.C_DATABASE, self.C_DATABASE_EXACC) + self.__initialize_data_key(self.C_DATABASE, self.C_DATABASE_EXACC_VMS) self.__initialize_data_key(self.C_DATABASE, self.C_DATABASE_ADB_DATABASE) self.__initialize_data_key(self.C_DATABASE, self.C_DATABASE_ADB_D_INFRA) self.__initialize_data_key(self.C_DATABASE, self.C_DATABASE_NOSQL) @@ -6644,7 +6648,9 @@ def __load_database_main(self): # append the data db[self.C_DATABASE_EXADATA] += self.__load_database_exadata_infrastructure(database_client, virtual_network, compartments) + db[self.C_DATABASE_EXADATA_VMS] += self.__load_database_exadata_vm_clusters(database_client, virtual_network, compartments) db[self.C_DATABASE_EXACC] += self.__load_database_exacc_infrastructure(database_client, virtual_network, compartments) + db[self.C_DATABASE_EXACC_VMS] += self.__load_database_exacc_vm_clusters(database_client, virtual_network, compartments) db[self.C_DATABASE_DBSYSTEMS] += self.__load_database_dbsystems(database_client, virtual_network, compartments) db[self.C_DATABASE_ADB_D_INFRA] += self.__load_database_adb_d_infrastructure(database_client, compartments) db[self.C_DATABASE_ADB_DATABASE] += self.__load_database_adb_database(database_client, compartments) @@ -6795,10 +6801,10 @@ def __load_database_maintatance_windows(self, maintenance_window): self.__print_error("__load_database_maintatance_windows", e) ########################################################################## - # __load_database_exadata_infrastructure + # __load_database_exacc_infrastructure ########################################################################## - def __load_database_exadata_infrastructure(self, database_client, virtual_network, compartments): + def __load_database_exacc_infrastructure(self, database_client, virtual_network, compartments): data = [] cnt = 0 @@ -6806,7 +6812,7 @@ def __load_database_exadata_infrastructure(self, database_client, virtual_networ try: - self.__load_print_status("Exadata Infrastructure") + self.__load_print_status("ExaCC Infrastructure") # loop on all compartments for compartment in compartments: @@ -6821,7 +6827,7 @@ def __load_database_exadata_infrastructure(self, database_client, virtual_networ list_exa = [] try: list_exa = oci.pagination.list_call_get_all_results( - database_client.list_cloud_exadata_infrastructures, + database_client.list_exadata_infrastructures, compartment['id'], sort_by="DISPLAYNAME", retry_strategy=oci.retry.DEFAULT_RETRY_STRATEGY @@ -6835,52 +6841,147 @@ def __load_database_exadata_infrastructure(self, database_client, virtual_networ raise # loop on the Exadata infrastructure - # dbs = oci.database.models.CloudExadataInfrastructureSummary + # dbs = oci.database.models.ExadataInfrastructureSummary for dbs in list_exa: - if (dbs.lifecycle_state == oci.database.models.CloudExadataInfrastructureSummary.LIFECYCLE_STATE_TERMINATED or - dbs.lifecycle_state == oci.database.models.CloudExadataInfrastructureSummary.LIFECYCLE_STATE_TERMINATING): + if (dbs.lifecycle_state == 'TERMINATED' or dbs.lifecycle_state == 'TERMINATING' or dbs.lifecycle_state == 'DELETING'): continue value = {'id': str(dbs.id), 'display_name': str(dbs.display_name), 'shape': str(dbs.shape), - 'shape_ocpu': 0, - 'shape_memory_gb': 0, - 'shape_storage_tb': 0, - 'version': 'XP', - 'lifecycle_state': str(dbs.lifecycle_state), - 'lifecycle_details': str(dbs.lifecycle_details), - 'availability_domain': str(dbs.availability_domain), - 'compute_count': str(dbs.compute_count), + 'time_zone': str(dbs.time_zone), + 'cpus_enabled': str(dbs.cpus_enabled), + 'max_cpu_count': str(dbs.max_cpu_count), + 'memory_size_in_gbs': str(dbs.memory_size_in_gbs), + 'max_memory_in_gbs': str(dbs.max_memory_in_gbs), + 'db_node_storage_size_in_gbs': str(dbs.db_node_storage_size_in_gbs), + 'max_db_node_storage_in_g_bs': str(dbs.max_db_node_storage_in_g_bs), + 'data_storage_size_in_tbs': str(dbs.data_storage_size_in_tbs), + 'max_data_storage_in_t_bs': str(dbs.max_data_storage_in_t_bs), 'storage_count': str(dbs.storage_count), - 'total_storage_size_in_gbs': str(dbs.total_storage_size_in_gbs), - 'available_storage_size_in_gbs': str(dbs.available_storage_size_in_gbs), - 'compartment_name': str(compartment['name']), - 'compartment_id': str(compartment['id']), + 'additional_storage_count': str(dbs.additional_storage_count), + 'activated_storage_count': str(dbs.activated_storage_count), + 'compute_count': str(dbs.compute_count), + 'cloud_control_plane_server1': str(dbs.cloud_control_plane_server1), + 'cloud_control_plane_server2': str(dbs.cloud_control_plane_server2), + 'netmask': str(dbs.netmask), + 'gateway': str(dbs.gateway), + 'admin_network_cidr': str(dbs.admin_network_cidr), + 'infini_band_network_cidr': str(dbs.infini_band_network_cidr), + 'corporate_proxy': str(dbs.corporate_proxy), + 'dns_server': str(dbs.dns_server), + 'ntp_server': str(dbs.ntp_server), 'time_created': str(dbs.time_created), + 'lifecycle_state': str(dbs.lifecycle_state), + 'lifecycle_details': str(dbs.lifecycle_details), + 'csi_number': str(dbs.csi_number), + 'maintenance_slo_status': str(dbs.maintenance_slo_status), + 'maintenance_window': self.__load_database_maintatance_windows(dbs.maintenance_window), 'last_maintenance_run': self.__load_database_maintatance(database_client, dbs.last_maintenance_run_id, str(dbs.display_name) + " - " + str(dbs.shape)), 'next_maintenance_run': self.__load_database_maintatance(database_client, dbs.next_maintenance_run_id, str(dbs.display_name) + " - " + str(dbs.shape)), - 'maintenance_window': self.__load_database_maintatance_windows(dbs.maintenance_window), 'defined_tags': [] if dbs.defined_tags is None else dbs.defined_tags, 'freeform_tags': [] if dbs.freeform_tags is None else dbs.freeform_tags, + 'contacts': "" if dbs.contacts is None else str(', '.join(x.name for x in dbs.contacts)), + 'compartment_name': str(compartment['name']), + 'compartment_id': str(compartment['id']), 'region_name': str(self.config['region']), - 'vm_clusters': self.__load_database_exadata_vm_clusters(database_client, virtual_network, dbs.id, compartment) + 'vm_clusters': [] } - # get shape - if dbs.shape: - shape_sizes = self.get_shape_details(str(dbs.shape)) - if shape_sizes: - value['shape_ocpu'] = shape_sizes['cpu'] - value['shape_memory_gb'] = shape_sizes['memory'] - value['shape_storage_tb'] = shape_sizes['storage'] + # add the data + cnt += 1 + data.append(value) - # if x8m calculate ocpu and storage - if dbs.shape == "Exadata.X8M": - if dbs.compute_count != "2" or dbs.storage_count != "3": - value['shape_ocpu'] = dbs.compute_count * 50 - value['shape_storage_tb'] = dbs.storage_count * 49.5 - value['shape_memory_gb'] = dbs.compute_count * 720 + self.__load_print_cnt(cnt, start_time) + return data + + except oci.exceptions.RequestException as e: + if self.__check_request_error(e): + return data + raise + except Exception as e: + self.__print_error("__load_database_exadata_cc_infrastructure", e) + return data + + ########################################################################## + # __load_database_exacc_vm_clusters + ########################################################################## + def __load_database_exacc_vm_clusters(self, database_client, virtual_network, compartments): + + data = [] + cnt = 0 + start_time = time.time() + + try: + + self.__load_print_status("ExaCC VMClusters") + + # loop on all compartments + for compartment in compartments: + + # skip managed paas compartment + if self.__if_managed_paas_compartment(compartment['name']): + print(".", end="") + continue + + print(".", end="") + + vms = [] + try: + vms = database_client.list_vm_clusters( + compartment['id'], + retry_strategy=oci.retry.DEFAULT_RETRY_STRATEGY + ).data + + except oci.exceptions.ServiceError as e: + if self.__check_service_error(e.code): + self.__load_print_auth_warning("a", False) + continue + else: + raise + + # arr = oci.database.models.VmClusterSummary + for arr in vms: + if arr.lifecycle_state == "TERMINATED" or arr.lifecycle_state == "TERMINATING": + continue + + value = { + 'id': str(arr.id), + 'last_patch_history_entry_id': str(arr.last_patch_history_entry_id), + 'lifecycle_state': str(arr.lifecycle_state), + 'display_name': str(arr.display_name), + 'time_created': str(arr.time_created), + 'lifecycle_details': str(arr.lifecycle_details), + 'time_zone': str(arr.time_zone), + 'is_local_backup_enabled': str(arr.is_local_backup_enabled), + 'exadata_infrastructure_id': str(arr.exadata_infrastructure_id), + 'is_sparse_diskgroup_enabled': str(arr.is_sparse_diskgroup_enabled), + 'vm_cluster_network_id': str(arr.vm_cluster_network_id), + 'cpus_enabled': str(arr.cpus_enabled), + 'memory_size_in_gbs': str(arr.memory_size_in_gbs), + 'db_node_storage_size_in_gbs': str(arr.db_node_storage_size_in_gbs), + 'data_storage_size_in_tbs': str(arr.data_storage_size_in_tbs), + 'shape': str(arr.shape), + 'gi_version': str(arr.gi_version), + 'system_version': str(arr.system_version), + 'license_model': str(arr.license_model), + 'defined_tags': [] if arr.defined_tags is None else arr.defined_tags, + 'freeform_tags': [] if arr.freeform_tags is None else arr.freeform_tags, + 'db_homes': self.__load_database_dbsystems_dbhomes(database_client, virtual_network, compartment, arr.id, exa=True), + 'db_nodes': self.__load_database_dbsystems_dbnodes(database_client, virtual_network, compartment, arr.id, exa=True), + 'patches': [], + 'compartment_name': str(compartment['name']), + 'compartment_id': str(compartment['id']), + 'region_name': str(self.config['region']) + } + + # license model + if arr.license_model == "LICENSE_INCLUDED": + value['license_model'] = "INCL" + elif arr.license_model == "BRING_YOUR_OWN_LICENSE": + value['license_model'] = "BYOL" + else: + value['license_model'] = str(arr.license_model) # add the data cnt += 1 @@ -6893,15 +6994,16 @@ def __load_database_exadata_infrastructure(self, database_client, virtual_networ if self.__check_request_error(e): return data raise + except Exception as e: - self.__print_error("__load_database_exadata_infrastructure", e) + self.__print_error("__load_database_exacc_vm_clusters", e) return data ########################################################################## - # __load_database_exacc_infrastructure + # __load_database_exadata_infrastructure ########################################################################## - def __load_database_exacc_infrastructure(self, database_client, virtual_network, compartments): + def __load_database_exadata_infrastructure(self, database_client, virtual_network, compartments): data = [] cnt = 0 @@ -6909,7 +7011,7 @@ def __load_database_exacc_infrastructure(self, database_client, virtual_network, try: - self.__load_print_status("ExaCC Infrastructure") + self.__load_print_status("Exadata Infrastructure") # loop on all compartments for compartment in compartments: @@ -6924,7 +7026,7 @@ def __load_database_exacc_infrastructure(self, database_client, virtual_network, list_exa = [] try: list_exa = oci.pagination.list_call_get_all_results( - database_client.list_exadata_infrastructures, + database_client.list_cloud_exadata_infrastructures, compartment['id'], sort_by="DISPLAYNAME", retry_strategy=oci.retry.DEFAULT_RETRY_STRATEGY @@ -6938,53 +7040,53 @@ def __load_database_exacc_infrastructure(self, database_client, virtual_network, raise # loop on the Exadata infrastructure - # dbs = oci.database.models.ExadataInfrastructureSummary + # dbs = oci.database.models.CloudExadataInfrastructureSummary for dbs in list_exa: - if (dbs.lifecycle_state == 'TERMINATED' or dbs.lifecycle_state == 'TERMINATING' or dbs.lifecycle_state == 'DELETING'): + if (dbs.lifecycle_state == oci.database.models.CloudExadataInfrastructureSummary.LIFECYCLE_STATE_TERMINATED or + dbs.lifecycle_state == oci.database.models.CloudExadataInfrastructureSummary.LIFECYCLE_STATE_TERMINATING): continue value = {'id': str(dbs.id), 'display_name': str(dbs.display_name), 'shape': str(dbs.shape), - 'time_zone': str(dbs.time_zone), - 'cpus_enabled': str(dbs.cpus_enabled), - 'max_cpu_count': str(dbs.max_cpu_count), - 'memory_size_in_gbs': str(dbs.memory_size_in_gbs), - 'max_memory_in_gbs': str(dbs.max_memory_in_gbs), - 'db_node_storage_size_in_gbs': str(dbs.db_node_storage_size_in_gbs), - 'max_db_node_storage_in_g_bs': str(dbs.max_db_node_storage_in_g_bs), - 'data_storage_size_in_tbs': str(dbs.data_storage_size_in_tbs), - 'max_data_storage_in_t_bs': str(dbs.max_data_storage_in_t_bs), - 'storage_count': str(dbs.storage_count), - 'additional_storage_count': str(dbs.additional_storage_count), - 'activated_storage_count': str(dbs.activated_storage_count), - 'compute_count': str(dbs.compute_count), - 'cloud_control_plane_server1': str(dbs.cloud_control_plane_server1), - 'cloud_control_plane_server2': str(dbs.cloud_control_plane_server2), - 'netmask': str(dbs.netmask), - 'gateway': str(dbs.gateway), - 'admin_network_cidr': str(dbs.admin_network_cidr), - 'infini_band_network_cidr': str(dbs.infini_band_network_cidr), - 'corporate_proxy': str(dbs.corporate_proxy), - 'dns_server': str(dbs.dns_server), - 'ntp_server': str(dbs.ntp_server), - 'time_created': str(dbs.time_created), + 'shape_ocpu': 0, + 'shape_memory_gb': 0, + 'shape_storage_tb': 0, + 'version': 'XP', 'lifecycle_state': str(dbs.lifecycle_state), 'lifecycle_details': str(dbs.lifecycle_details), - 'csi_number': str(dbs.csi_number), - 'maintenance_slo_status': str(dbs.maintenance_slo_status), - 'maintenance_window': self.__load_database_maintatance_windows(dbs.maintenance_window), + 'availability_domain': str(dbs.availability_domain), + 'compute_count': str(dbs.compute_count), + 'storage_count': str(dbs.storage_count), + 'total_storage_size_in_gbs': str(dbs.total_storage_size_in_gbs), + 'available_storage_size_in_gbs': str(dbs.available_storage_size_in_gbs), + 'compartment_name': str(compartment['name']), + 'compartment_id': str(compartment['id']), + 'time_created': str(dbs.time_created), 'last_maintenance_run': self.__load_database_maintatance(database_client, dbs.last_maintenance_run_id, str(dbs.display_name) + " - " + str(dbs.shape)), 'next_maintenance_run': self.__load_database_maintatance(database_client, dbs.next_maintenance_run_id, str(dbs.display_name) + " - " + str(dbs.shape)), + 'maintenance_window': self.__load_database_maintatance_windows(dbs.maintenance_window), 'defined_tags': [] if dbs.defined_tags is None else dbs.defined_tags, 'freeform_tags': [] if dbs.freeform_tags is None else dbs.freeform_tags, - 'contacts': "" if dbs.contacts is None else str(', '.join(x.name for x in dbs.contacts)), - 'compartment_name': str(compartment['name']), - 'compartment_id': str(compartment['id']), 'region_name': str(self.config['region']), - 'vm_clusters': self.__load_database_exacc_vm_clusters(database_client, virtual_network, dbs.id, compartment) + 'vm_clusters': [] } + # get shape + if dbs.shape: + shape_sizes = self.get_shape_details(str(dbs.shape)) + if shape_sizes: + value['shape_ocpu'] = shape_sizes['cpu'] + value['shape_memory_gb'] = shape_sizes['memory'] + value['shape_storage_tb'] = shape_sizes['storage'] + + # if x8m calculate ocpu and storage + if dbs.shape == "Exadata.X8M": + if dbs.compute_count != "2" or dbs.storage_count != "3": + value['shape_ocpu'] = dbs.compute_count * 50 + value['shape_storage_tb'] = dbs.storage_count * 49.5 + value['shape_memory_gb'] = dbs.compute_count * 720 + # add the data cnt += 1 data.append(value) @@ -6997,184 +7099,139 @@ def __load_database_exacc_infrastructure(self, database_client, virtual_network, return data raise except Exception as e: - self.__print_error("__load_database_exadata_cc_infrastructure", e) + self.__print_error("__load_database_exadata_infrastructure", e) return data ########################################################################## # __load_database_exadata_vm_clusters ########################################################################## - def __load_database_exadata_vm_clusters(self, database_client, virtual_network, exa_id, compartment): + def __load_database_exadata_vm_clusters(self, database_client, virtual_network, compartments): data = [] + cnt = 0 + start_time = time.time() + try: - vms = database_client.list_cloud_vm_clusters( - compartment['id'], - cloud_exadata_infrastructure_id=exa_id, - retry_strategy=oci.retry.DEFAULT_RETRY_STRATEGY - ).data - # arr = oci.database.models.CloudVmClusterSummary - for arr in vms: - if (arr.lifecycle_state == oci.database.models.CloudVmClusterSummary.LIFECYCLE_STATE_TERMINATED or - arr.lifecycle_state == oci.database.models.CloudVmClusterSummary.LIFECYCLE_STATE_TERMINATING): + self.__load_print_status("Exadata VMClusters") + + # loop on all compartments + for compartment in compartments: + + # skip managed paas compartment + if self.__if_managed_paas_compartment(compartment['name']): + print(".", end="") continue - value = { - 'id': str(arr.id), - 'cluster_name': str(arr.cluster_name), - 'hostname': str(arr.hostname), - 'compartment_id': str(arr.compartment_id), - 'availability_domain': str(arr.availability_domain), - 'data_subnet_id': str(arr.subnet_id), - 'data_subnet': self.get_network_subnet(str(arr.subnet_id), True), - 'backup_subnet_id': str(arr.backup_subnet_id), - 'backup_subnet': "" if arr.backup_subnet_id is None else self.get_network_subnet(str(arr.backup_subnet_id), True), - 'nsg_ids': arr.nsg_ids, - 'backup_network_nsg_ids': str(arr.backup_network_nsg_ids), - 'last_update_history_entry_id': str(arr.last_update_history_entry_id), - 'shape': str(arr.shape), - 'listener_port': str(arr.listener_port), - 'lifecycle_state': str(arr.lifecycle_state), - 'node_count': str(arr.node_count), - 'storage_size_in_gbs': str(arr.storage_size_in_gbs), - 'display_name': str(arr.display_name), - 'time_created': str(arr.time_created), - 'lifecycle_details': str(arr.lifecycle_details), - 'time_zone': str(arr.time_zone), - 'domain': str(arr.domain), - 'cpu_core_count': str(arr.cpu_core_count), - 'data_storage_percentage': str(arr.data_storage_percentage), - 'is_local_backup_enabled': str(arr.is_local_backup_enabled), - 'is_sparse_diskgroup_enabled': str(arr.is_sparse_diskgroup_enabled), - 'gi_version': str(arr.gi_version), - 'system_version': str(arr.system_version), - 'ssh_public_keys': str(arr.ssh_public_keys), - 'license_model': str(arr.license_model), - 'disk_redundancy': str(arr.disk_redundancy), - 'scan_ip_ids': str(arr.scan_ip_ids), - 'vip_ids': str(arr.vip_ids), - 'scan_dns_record_id': str(arr.scan_dns_record_id), - 'defined_tags': [] if arr.defined_tags is None else arr.defined_tags, - 'freeform_tags': [] if arr.freeform_tags is None else arr.freeform_tags, - 'patches': [], - 'db_homes': self.__load_database_dbsystems_dbhomes(database_client, virtual_network, compartment, arr.id, exa=True), - 'db_nodes': self.__load_database_dbsystems_dbnodes(database_client, virtual_network, compartment, arr.id, exa=True), - 'region_name': str(self.config['region']), - 'scan_ips': [], - 'vip_ips': [], - 'scan_dns_name': str(arr.scan_dns_name), - 'zone_id': str(arr.zone_id) - } + print(".", end="") - # Skip the patches, there is an issue with the api for the vm cluster - # value['patches'] = self.__load_database_exadata_vm_patches(database_client, arr.id), - - # get shape - if arr.shape: - shape_sizes = self.get_shape_details(str(arr.shape)) - if shape_sizes: - value['shape_ocpu'] = shape_sizes['cpu'] - value['shape_memory_gb'] = shape_sizes['memory'] - value['shape_storage_tb'] = shape_sizes['storage'] - - # license model - if arr.license_model == oci.database.models.CloudVmClusterSummary.LICENSE_MODEL_LICENSE_INCLUDED: - value['license_model'] = "INCL" - elif arr.license_model == oci.database.models.CloudVmClusterSummary.LICENSE_MODEL_BRING_YOUR_OWN_LICENSE: - value['license_model'] = "BYOL" - else: - value['license_model'] = str(arr.license_model) - - # scan IPs - if arr.scan_ip_ids is not None: - scan_ips = [] - for scan_ip in arr.scan_ip_ids: - scan_ips.append(self.__load_core_network_single_privateip(virtual_network, scan_ip)) - value['scan_ips'] = scan_ips - - # VIPs - if arr.vip_ids is not None: - vip_ips = [] - for vipip in arr.vip_ids: - vip_ips.append(self.__load_core_network_single_privateip(virtual_network, vipip)) - value['vip_ips'] = vip_ips + vms = [] + try: + vms = database_client.list_cloud_vm_clusters( + compartment['id'], + retry_strategy=oci.retry.DEFAULT_RETRY_STRATEGY + ).data - # add to main data - data.append(value) + except oci.exceptions.ServiceError as e: + if self.__check_service_error(e.code): + self.__load_print_auth_warning("a", False) + continue + else: + raise - return data + # arr = oci.database.models.CloudVmClusterSummary + for arr in vms: + if (arr.lifecycle_state == oci.database.models.CloudVmClusterSummary.LIFECYCLE_STATE_TERMINATED or + arr.lifecycle_state == oci.database.models.CloudVmClusterSummary.LIFECYCLE_STATE_TERMINATING): + continue - except oci.exceptions.ServiceError as e: - if self.__check_service_error(e.code): - self.__load_print_auth_warning() - return data - else: - raise - except oci.exceptions.RequestException as e: - if self.__check_request_error(e): - return data - raise - except Exception as e: - self.__print_error("__load_database_exadata_vm_clusters", e) - return data + value = { + 'id': str(arr.id), + 'cloud_exadata_infrastructure_id': str(arr.cloud_exadata_infrastructure_id), + 'cluster_name': str(arr.cluster_name), + 'hostname': str(arr.hostname), + 'availability_domain': str(arr.availability_domain), + 'data_subnet_id': str(arr.subnet_id), + 'data_subnet': self.get_network_subnet(str(arr.subnet_id), True), + 'backup_subnet_id': str(arr.backup_subnet_id), + 'backup_subnet': "" if arr.backup_subnet_id is None else self.get_network_subnet(str(arr.backup_subnet_id), True), + 'nsg_ids': arr.nsg_ids, + 'backup_network_nsg_ids': str(arr.backup_network_nsg_ids), + 'last_update_history_entry_id': str(arr.last_update_history_entry_id), + 'shape': str(arr.shape), + 'listener_port': str(arr.listener_port), + 'lifecycle_state': str(arr.lifecycle_state), + 'node_count': str(arr.node_count), + 'storage_size_in_gbs': str(arr.storage_size_in_gbs), + 'display_name': str(arr.display_name), + 'time_created': str(arr.time_created), + 'lifecycle_details': str(arr.lifecycle_details), + 'time_zone': str(arr.time_zone), + 'domain': str(arr.domain), + 'cpu_core_count': str(arr.cpu_core_count), + 'data_storage_percentage': str(arr.data_storage_percentage), + 'is_local_backup_enabled': str(arr.is_local_backup_enabled), + 'is_sparse_diskgroup_enabled': str(arr.is_sparse_diskgroup_enabled), + 'gi_version': str(arr.gi_version), + 'system_version': str(arr.system_version), + 'ssh_public_keys': str(arr.ssh_public_keys), + 'license_model': str(arr.license_model), + 'disk_redundancy': str(arr.disk_redundancy), + 'scan_ip_ids': str(arr.scan_ip_ids), + 'vip_ids': str(arr.vip_ids), + 'scan_dns_record_id': str(arr.scan_dns_record_id), + 'defined_tags': [] if arr.defined_tags is None else arr.defined_tags, + 'freeform_tags': [] if arr.freeform_tags is None else arr.freeform_tags, + 'patches': [], + 'db_homes': self.__load_database_dbsystems_dbhomes(database_client, virtual_network, compartment, arr.id, exa=True), + 'db_nodes': self.__load_database_dbsystems_dbnodes(database_client, virtual_network, compartment, arr.id, exa=True), + 'region_name': str(self.config['region']), + 'scan_ips': [], + 'vip_ips': [], + 'scan_dns_name': str(arr.scan_dns_name), + 'zone_id': str(arr.zone_id), + 'compartment_name': str(compartment['name']), + 'compartment_id': str(compartment['id']) + } - ########################################################################## - # __load_database_exacc_vm_clusters - ########################################################################## - def __load_database_exacc_vm_clusters(self, database_client, virtual_network, exa_id, compartment): + # Skip the patches, there is an issue with the api for the vm cluster + # value['patches'] = self.__load_database_exadata_vm_patches(database_client, arr.id), - data = [] - try: - vms = database_client.list_vm_clusters( - compartment['id'], - exadata_infrastructure_id=exa_id, - retry_strategy=oci.retry.DEFAULT_RETRY_STRATEGY - ).data + # get shape + if arr.shape: + shape_sizes = self.get_shape_details(str(arr.shape)) + if shape_sizes: + value['shape_ocpu'] = shape_sizes['cpu'] + value['shape_memory_gb'] = shape_sizes['memory'] + value['shape_storage_tb'] = shape_sizes['storage'] - # arr = oci.database.models.VmClusterSummary - for arr in vms: - if (arr.lifecycle_state == "TERMINATED" or arr.lifecycle_state == "TERMINATING"): - continue + # license model + if arr.license_model == oci.database.models.CloudVmClusterSummary.LICENSE_MODEL_LICENSE_INCLUDED: + value['license_model'] = "INCL" + elif arr.license_model == oci.database.models.CloudVmClusterSummary.LICENSE_MODEL_BRING_YOUR_OWN_LICENSE: + value['license_model'] = "BYOL" + else: + value['license_model'] = str(arr.license_model) - value = { - 'id': str(arr.id), - 'last_patch_history_entry_id': str(arr.last_patch_history_entry_id), - 'lifecycle_state': str(arr.lifecycle_state), - 'display_name': str(arr.display_name), - 'time_created': str(arr.time_created), - 'lifecycle_details': str(arr.lifecycle_details), - 'time_zone': str(arr.time_zone), - 'is_local_backup_enabled': str(arr.is_local_backup_enabled), - 'exadata_infrastructure_id': str(arr.exadata_infrastructure_id), - 'is_sparse_diskgroup_enabled': str(arr.is_sparse_diskgroup_enabled), - 'vm_cluster_network_id': str(arr.vm_cluster_network_id), - 'cpus_enabled': str(arr.cpus_enabled), - 'memory_size_in_gbs': str(arr.memory_size_in_gbs), - 'db_node_storage_size_in_gbs': str(arr.db_node_storage_size_in_gbs), - 'data_storage_size_in_tbs': str(arr.data_storage_size_in_tbs), - 'shape': str(arr.shape), - 'gi_version': str(arr.gi_version), - 'system_version': str(arr.system_version), - 'license_model': str(arr.license_model), - 'defined_tags': [] if arr.defined_tags is None else arr.defined_tags, - 'freeform_tags': [] if arr.freeform_tags is None else arr.freeform_tags, - 'db_homes': self.__load_database_dbsystems_dbhomes(database_client, virtual_network, compartment, arr.id, exa=True), - 'db_nodes': self.__load_database_dbsystems_dbnodes(database_client, virtual_network, compartment, arr.id, exa=True), - 'patches': [], - 'region_name': str(self.config['region']) - } + # scan IPs + if arr.scan_ip_ids is not None: + scan_ips = [] + for scan_ip in arr.scan_ip_ids: + scan_ips.append(self.__load_core_network_single_privateip(virtual_network, scan_ip)) + value['scan_ips'] = scan_ips - # license model - if arr.license_model == "LICENSE_INCLUDED": - value['license_model'] = "INCL" - elif arr.license_model == "BRING_YOUR_OWN_LICENSE": - value['license_model'] = "BYOL" - else: - value['license_model'] = str(arr.license_model) + # VIPs + if arr.vip_ids is not None: + vip_ips = [] + for vipip in arr.vip_ids: + vip_ips.append(self.__load_core_network_single_privateip(virtual_network, vipip)) + value['vip_ips'] = vip_ips - # add to main data - data.append(value) + # add to main data + cnt += 1 + data.append(value) + self.__load_print_cnt(cnt, start_time) return data except oci.exceptions.ServiceError as e: @@ -7188,7 +7245,7 @@ def __load_database_exacc_vm_clusters(self, database_client, virtual_network, ex return data raise except Exception as e: - self.__print_error("__load_database_exacc_vm_clusters", e) + self.__print_error("__load_database_exadata_vm_clusters", e) return data ########################################################################## @@ -7600,6 +7657,9 @@ def __load_database_dbsystems_home_patches(self, database_client, dbhome_id): if 'InternalError' in str(e.code): print('p', end="") return data + if 'Aborted' in str(e.code): + print('p', end="") + return data raise except oci.exceptions.RequestException as e: if self.__check_request_error(e): @@ -11156,6 +11216,8 @@ def __load_paas_oic(self, oic_client, compartments): 'sum_size_gb': str(oic.message_packs), 'is_file_server_enabled': str(oic.is_file_server_enabled), 'consumption_model': str(oic.consumption_model), + 'defined_tags': [], + 'freeform_tags': [], 'compartment_name': str(compartment['name']), 'compartment_id': str(compartment['id']), 'region_name': str(self.config['region'])} @@ -11390,6 +11452,8 @@ def __load_paas_oac(self, oac_client, compartments): 'sum_info': "PaaS OAC Native " + str(oac.capacity.capacity_type) + " " + ("BYOL" if 'BRING' in oac.license_type else "INCL"), 'sum_size_gb': str(oac.capacity.capacity_value), 'network_endpoint_details': str(oac.network_endpoint_details.network_endpoint_type), + 'defined_tags': [], + 'freeform_tags': [], 'compartment_name': str(compartment['name']), 'compartment_id': str(compartment['id']), 'region_name': str(self.config['region'])} diff --git a/src/oci/ai_vision/ai_service_vision_client.py b/src/oci/ai_vision/ai_service_vision_client.py index 3e5d49acd2..bf878b1c8c 100644 --- a/src/oci/ai_vision/ai_service_vision_client.py +++ b/src/oci/ai_vision/ai_service_vision_client.py @@ -118,7 +118,7 @@ def analyze_document(self, analyze_document_details, **kwargs): :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. + 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`. @@ -158,6 +158,8 @@ def analyze_document(self, analyze_document_details, **kwargs): 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): @@ -192,7 +194,7 @@ def analyze_image(self, analyze_image_details, **kwargs): :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. + 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`. @@ -232,6 +234,8 @@ def analyze_image(self, analyze_image_details, **kwargs): 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): diff --git a/src/oci/core/models/__init__.py b/src/oci/core/models/__init__.py index 5bca16d20a..3fe5d1ca6a 100644 --- a/src/oci/core/models/__init__.py +++ b/src/oci/core/models/__init__.py @@ -207,6 +207,7 @@ from .drg_attachment import DrgAttachment from .drg_attachment_id_drg_route_distribution_match_criteria import DrgAttachmentIdDrgRouteDistributionMatchCriteria from .drg_attachment_info import DrgAttachmentInfo +from .drg_attachment_match_all_drg_route_distribution_match_criteria import DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria from .drg_attachment_network_create_details import DrgAttachmentNetworkCreateDetails from .drg_attachment_network_details import DrgAttachmentNetworkDetails from .drg_attachment_network_update_details import DrgAttachmentNetworkUpdateDetails @@ -691,6 +692,7 @@ "DrgAttachment": DrgAttachment, "DrgAttachmentIdDrgRouteDistributionMatchCriteria": DrgAttachmentIdDrgRouteDistributionMatchCriteria, "DrgAttachmentInfo": DrgAttachmentInfo, + "DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria": DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria, "DrgAttachmentNetworkCreateDetails": DrgAttachmentNetworkCreateDetails, "DrgAttachmentNetworkDetails": DrgAttachmentNetworkDetails, "DrgAttachmentNetworkUpdateDetails": DrgAttachmentNetworkUpdateDetails, diff --git a/src/oci/core/models/drg_attachment_id_drg_route_distribution_match_criteria.py b/src/oci/core/models/drg_attachment_id_drg_route_distribution_match_criteria.py index ddb8a31c48..90d52db58d 100644 --- a/src/oci/core/models/drg_attachment_id_drg_route_distribution_match_criteria.py +++ b/src/oci/core/models/drg_attachment_id_drg_route_distribution_match_criteria.py @@ -21,7 +21,7 @@ def __init__(self, **kwargs): :param match_type: The value to assign to the match_type property of this DrgAttachmentIdDrgRouteDistributionMatchCriteria. - Allowed values for this property are: "DRG_ATTACHMENT_TYPE", "DRG_ATTACHMENT_ID" + Allowed values for this property are: "DRG_ATTACHMENT_TYPE", "DRG_ATTACHMENT_ID", "MATCH_ALL" :type match_type: str :param drg_attachment_id: diff --git a/src/oci/core/models/drg_attachment_match_all_drg_route_distribution_match_criteria.py b/src/oci/core/models/drg_attachment_match_all_drg_route_distribution_match_criteria.py new file mode 100644 index 0000000000..2a7e3e5c51 --- /dev/null +++ b/src/oci/core/models/drg_attachment_match_all_drg_route_distribution_match_criteria.py @@ -0,0 +1,49 @@ +# coding: utf-8 +# Copyright (c) 2016, 2022, 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. + +from .drg_route_distribution_match_criteria import DrgRouteDistributionMatchCriteria +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 DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria(DrgRouteDistributionMatchCriteria): + """ + No match criteria is applied. + """ + + def __init__(self, **kwargs): + """ + Initializes a new DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria object with values from keyword arguments. The default value of the :py:attr:`~oci.core.models.DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria.match_type` attribute + of this class is ``MATCH_ALL`` and it should not be changed. + The following keyword arguments are supported (corresponding to the getters/setters of this class): + + :param match_type: + The value to assign to the match_type property of this DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria. + Allowed values for this property are: "DRG_ATTACHMENT_TYPE", "DRG_ATTACHMENT_ID", "MATCH_ALL" + :type match_type: str + + """ + self.swagger_types = { + 'match_type': 'str' + } + + self.attribute_map = { + 'match_type': 'matchType' + } + + self._match_type = None + self._match_type = 'MATCH_ALL' + + 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/drg_attachment_type_drg_route_distribution_match_criteria.py b/src/oci/core/models/drg_attachment_type_drg_route_distribution_match_criteria.py index 89d9ee05b3..8fe2606189 100644 --- a/src/oci/core/models/drg_attachment_type_drg_route_distribution_match_criteria.py +++ b/src/oci/core/models/drg_attachment_type_drg_route_distribution_match_criteria.py @@ -38,7 +38,7 @@ def __init__(self, **kwargs): :param match_type: The value to assign to the match_type property of this DrgAttachmentTypeDrgRouteDistributionMatchCriteria. - Allowed values for this property are: "DRG_ATTACHMENT_TYPE", "DRG_ATTACHMENT_ID", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "DRG_ATTACHMENT_TYPE", "DRG_ATTACHMENT_ID", "MATCH_ALL", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. :type match_type: str diff --git a/src/oci/core/models/drg_route_distribution_match_criteria.py b/src/oci/core/models/drg_route_distribution_match_criteria.py index e6981adca9..8c43e62db2 100644 --- a/src/oci/core/models/drg_route_distribution_match_criteria.py +++ b/src/oci/core/models/drg_route_distribution_match_criteria.py @@ -22,6 +22,10 @@ class DrgRouteDistributionMatchCriteria(object): #: This constant has a value of "DRG_ATTACHMENT_ID" MATCH_TYPE_DRG_ATTACHMENT_ID = "DRG_ATTACHMENT_ID" + #: A constant which can be used with the match_type property of a DrgRouteDistributionMatchCriteria. + #: This constant has a value of "MATCH_ALL" + MATCH_TYPE_MATCH_ALL = "MATCH_ALL" + def __init__(self, **kwargs): """ Initializes a new DrgRouteDistributionMatchCriteria object with values from keyword arguments. This class has the following subclasses and if you are using this class as input @@ -29,12 +33,13 @@ def __init__(self, **kwargs): * :class:`~oci.core.models.DrgAttachmentIdDrgRouteDistributionMatchCriteria` * :class:`~oci.core.models.DrgAttachmentTypeDrgRouteDistributionMatchCriteria` + * :class:`~oci.core.models.DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria` The following keyword arguments are supported (corresponding to the getters/setters of this class): :param match_type: The value to assign to the match_type property of this DrgRouteDistributionMatchCriteria. - Allowed values for this property are: "DRG_ATTACHMENT_TYPE", "DRG_ATTACHMENT_ID", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "DRG_ATTACHMENT_TYPE", "DRG_ATTACHMENT_ID", "MATCH_ALL", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. :type match_type: str @@ -62,6 +67,9 @@ def get_subtype(object_dictionary): if type == 'DRG_ATTACHMENT_TYPE': return 'DrgAttachmentTypeDrgRouteDistributionMatchCriteria' + + if type == 'MATCH_ALL': + return 'DrgAttachmentMatchAllDrgRouteDistributionMatchCriteria' else: return 'DrgRouteDistributionMatchCriteria' @@ -71,7 +79,7 @@ def match_type(self): **[Required]** Gets the match_type of this DrgRouteDistributionMatchCriteria. The type of the match criteria for a route distribution statement. - Allowed values for this property are: "DRG_ATTACHMENT_TYPE", "DRG_ATTACHMENT_ID", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "DRG_ATTACHMENT_TYPE", "DRG_ATTACHMENT_ID", "MATCH_ALL", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. @@ -90,7 +98,7 @@ def match_type(self, match_type): :param match_type: The match_type of this DrgRouteDistributionMatchCriteria. :type: str """ - allowed_values = ["DRG_ATTACHMENT_TYPE", "DRG_ATTACHMENT_ID"] + allowed_values = ["DRG_ATTACHMENT_TYPE", "DRG_ATTACHMENT_ID", "MATCH_ALL"] if not value_allowed_none_or_none_sentinel(match_type, allowed_values): match_type = 'UNKNOWN_ENUM_VALUE' self._match_type = match_type diff --git a/src/oci/core/models/vcn_drg_attachment_network_create_details.py b/src/oci/core/models/vcn_drg_attachment_network_create_details.py index 7a83a87798..0cbd0c9f07 100644 --- a/src/oci/core/models/vcn_drg_attachment_network_create_details.py +++ b/src/oci/core/models/vcn_drg_attachment_network_create_details.py @@ -32,22 +32,29 @@ def __init__(self, **kwargs): The value to assign to the route_table_id property of this VcnDrgAttachmentNetworkCreateDetails. :type route_table_id: str + :param vcn_route_type: + The value to assign to the vcn_route_type property of this VcnDrgAttachmentNetworkCreateDetails. + :type vcn_route_type: str + """ self.swagger_types = { 'type': 'str', 'id': 'str', - 'route_table_id': 'str' + 'route_table_id': 'str', + 'vcn_route_type': 'str' } self.attribute_map = { 'type': 'type', 'id': 'id', - 'route_table_id': 'routeTableId' + 'route_table_id': 'routeTableId', + 'vcn_route_type': 'vcnRouteType' } self._type = None self._id = None self._route_table_id = None + self._vcn_route_type = None self._type = 'VCN' @property @@ -98,6 +105,32 @@ def route_table_id(self, route_table_id): """ self._route_table_id = route_table_id + @property + def vcn_route_type(self): + """ + Gets the vcn_route_type of this VcnDrgAttachmentNetworkCreateDetails. + Indicates whether the VCN CIDR(s) or the individual Subnet CIDR(s) are imported from the attachment. + Routes from the VCN Ingress Route Table are always imported. + + + :return: The vcn_route_type of this VcnDrgAttachmentNetworkCreateDetails. + :rtype: str + """ + return self._vcn_route_type + + @vcn_route_type.setter + def vcn_route_type(self, vcn_route_type): + """ + Sets the vcn_route_type of this VcnDrgAttachmentNetworkCreateDetails. + Indicates whether the VCN CIDR(s) or the individual Subnet CIDR(s) are imported from the attachment. + Routes from the VCN Ingress Route Table are always imported. + + + :param vcn_route_type: The vcn_route_type of this VcnDrgAttachmentNetworkCreateDetails. + :type: str + """ + self._vcn_route_type = vcn_route_type + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/core/models/vcn_drg_attachment_network_details.py b/src/oci/core/models/vcn_drg_attachment_network_details.py index 887e502110..16405c5937 100644 --- a/src/oci/core/models/vcn_drg_attachment_network_details.py +++ b/src/oci/core/models/vcn_drg_attachment_network_details.py @@ -13,6 +13,14 @@ class VcnDrgAttachmentNetworkDetails(DrgAttachmentNetworkDetails): Specifies details within the VCN. """ + #: A constant which can be used with the vcn_route_type property of a VcnDrgAttachmentNetworkDetails. + #: This constant has a value of "VCN_CIDRS" + VCN_ROUTE_TYPE_VCN_CIDRS = "VCN_CIDRS" + + #: A constant which can be used with the vcn_route_type property of a VcnDrgAttachmentNetworkDetails. + #: This constant has a value of "SUBNET_CIDRS" + VCN_ROUTE_TYPE_SUBNET_CIDRS = "SUBNET_CIDRS" + def __init__(self, **kwargs): """ Initializes a new VcnDrgAttachmentNetworkDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.core.models.VcnDrgAttachmentNetworkDetails.type` attribute @@ -21,7 +29,8 @@ def __init__(self, **kwargs): :param type: The value to assign to the type property of this VcnDrgAttachmentNetworkDetails. - Allowed values for this property are: "VCN", "IPSEC_TUNNEL", "VIRTUAL_CIRCUIT", "REMOTE_PEERING_CONNECTION" + Allowed values for this property are: "VCN", "IPSEC_TUNNEL", "VIRTUAL_CIRCUIT", "REMOTE_PEERING_CONNECTION", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. :type type: str :param id: @@ -32,22 +41,31 @@ def __init__(self, **kwargs): The value to assign to the route_table_id property of this VcnDrgAttachmentNetworkDetails. :type route_table_id: str + :param vcn_route_type: + The value to assign to the vcn_route_type property of this VcnDrgAttachmentNetworkDetails. + Allowed values for this property are: "VCN_CIDRS", "SUBNET_CIDRS", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + :type vcn_route_type: str + """ self.swagger_types = { 'type': 'str', 'id': 'str', - 'route_table_id': 'str' + 'route_table_id': 'str', + 'vcn_route_type': 'str' } self.attribute_map = { 'type': 'type', 'id': 'id', - 'route_table_id': 'routeTableId' + 'route_table_id': 'routeTableId', + 'vcn_route_type': 'vcnRouteType' } self._type = None self._id = None self._route_table_id = None + self._vcn_route_type = None self._type = 'VCN' @property @@ -92,6 +110,38 @@ def route_table_id(self, route_table_id): """ self._route_table_id = route_table_id + @property + def vcn_route_type(self): + """ + Gets the vcn_route_type of this VcnDrgAttachmentNetworkDetails. + Indicates whether the VCN CIDR(s) or the individual Subnet CIDR(s) are imported from the attachment. + Routes from the VCN Ingress Route Table are always imported. + + Allowed values for this property are: "VCN_CIDRS", "SUBNET_CIDRS", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + + + :return: The vcn_route_type of this VcnDrgAttachmentNetworkDetails. + :rtype: str + """ + return self._vcn_route_type + + @vcn_route_type.setter + def vcn_route_type(self, vcn_route_type): + """ + Sets the vcn_route_type of this VcnDrgAttachmentNetworkDetails. + Indicates whether the VCN CIDR(s) or the individual Subnet CIDR(s) are imported from the attachment. + Routes from the VCN Ingress Route Table are always imported. + + + :param vcn_route_type: The vcn_route_type of this VcnDrgAttachmentNetworkDetails. + :type: str + """ + allowed_values = ["VCN_CIDRS", "SUBNET_CIDRS"] + if not value_allowed_none_or_none_sentinel(vcn_route_type, allowed_values): + vcn_route_type = 'UNKNOWN_ENUM_VALUE' + self._vcn_route_type = vcn_route_type + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/core/models/vcn_drg_attachment_network_update_details.py b/src/oci/core/models/vcn_drg_attachment_network_update_details.py index 85c11eb0bb..ce4ae923a5 100644 --- a/src/oci/core/models/vcn_drg_attachment_network_update_details.py +++ b/src/oci/core/models/vcn_drg_attachment_network_update_details.py @@ -28,19 +28,26 @@ def __init__(self, **kwargs): The value to assign to the route_table_id property of this VcnDrgAttachmentNetworkUpdateDetails. :type route_table_id: str + :param vcn_route_type: + The value to assign to the vcn_route_type property of this VcnDrgAttachmentNetworkUpdateDetails. + :type vcn_route_type: str + """ self.swagger_types = { 'type': 'str', - 'route_table_id': 'str' + 'route_table_id': 'str', + 'vcn_route_type': 'str' } self.attribute_map = { 'type': 'type', - 'route_table_id': 'routeTableId' + 'route_table_id': 'routeTableId', + 'vcn_route_type': 'vcnRouteType' } self._type = None self._route_table_id = None + self._vcn_route_type = None self._type = 'VCN' @property @@ -85,6 +92,32 @@ def route_table_id(self, route_table_id): """ self._route_table_id = route_table_id + @property + def vcn_route_type(self): + """ + Gets the vcn_route_type of this VcnDrgAttachmentNetworkUpdateDetails. + Indicates whether the VCN CIDR(s) or the individual Subnet CIDR(s) are imported from the attachment. + Routes from the VCN Ingress Route Table are always imported. + + + :return: The vcn_route_type of this VcnDrgAttachmentNetworkUpdateDetails. + :rtype: str + """ + return self._vcn_route_type + + @vcn_route_type.setter + def vcn_route_type(self, vcn_route_type): + """ + Sets the vcn_route_type of this VcnDrgAttachmentNetworkUpdateDetails. + Indicates whether the VCN CIDR(s) or the individual Subnet CIDR(s) are imported from the attachment. + Routes from the VCN Ingress Route Table are always imported. + + + :param vcn_route_type: The vcn_route_type of this VcnDrgAttachmentNetworkUpdateDetails. + :type: str + """ + self._vcn_route_type = vcn_route_type + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/data_science/models/__init__.py b/src/oci/data_science/models/__init__.py index 32e030e6a4..575cb8445a 100644 --- a/src/oci/data_science/models/__init__.py +++ b/src/oci/data_science/models/__init__.py @@ -32,6 +32,7 @@ from .job_shape_summary import JobShapeSummary from .job_summary import JobSummary from .log_details import LogDetails +from .managed_egress_standalone_job_infrastructure_configuration_details import ManagedEgressStandaloneJobInfrastructureConfigurationDetails from .metadata import Metadata from .model import Model from .model_configuration_details import ModelConfigurationDetails @@ -42,6 +43,7 @@ from .model_provenance import ModelProvenance from .model_summary import ModelSummary from .notebook_session import NotebookSession +from .notebook_session_config_details import NotebookSessionConfigDetails from .notebook_session_configuration_details import NotebookSessionConfigurationDetails from .notebook_session_shape_config_details import NotebookSessionShapeConfigDetails from .notebook_session_shape_summary import NotebookSessionShapeSummary @@ -98,6 +100,7 @@ "JobShapeSummary": JobShapeSummary, "JobSummary": JobSummary, "LogDetails": LogDetails, + "ManagedEgressStandaloneJobInfrastructureConfigurationDetails": ManagedEgressStandaloneJobInfrastructureConfigurationDetails, "Metadata": Metadata, "Model": Model, "ModelConfigurationDetails": ModelConfigurationDetails, @@ -108,6 +111,7 @@ "ModelProvenance": ModelProvenance, "ModelSummary": ModelSummary, "NotebookSession": NotebookSession, + "NotebookSessionConfigDetails": NotebookSessionConfigDetails, "NotebookSessionConfigurationDetails": NotebookSessionConfigurationDetails, "NotebookSessionShapeConfigDetails": NotebookSessionShapeConfigDetails, "NotebookSessionShapeSummary": NotebookSessionShapeSummary, diff --git a/src/oci/data_science/models/create_notebook_session_details.py b/src/oci/data_science/models/create_notebook_session_details.py index f8087ccdcc..e3ebdad8c0 100644 --- a/src/oci/data_science/models/create_notebook_session_details.py +++ b/src/oci/data_science/models/create_notebook_session_details.py @@ -34,6 +34,10 @@ def __init__(self, **kwargs): The value to assign to the notebook_session_configuration_details property of this CreateNotebookSessionDetails. :type notebook_session_configuration_details: oci.data_science.models.NotebookSessionConfigurationDetails + :param notebook_session_config_details: + The value to assign to the notebook_session_config_details property of this CreateNotebookSessionDetails. + :type notebook_session_config_details: oci.data_science.models.NotebookSessionConfigDetails + :param freeform_tags: The value to assign to the freeform_tags property of this CreateNotebookSessionDetails. :type freeform_tags: dict(str, str) @@ -48,6 +52,7 @@ def __init__(self, **kwargs): 'project_id': 'str', 'compartment_id': 'str', 'notebook_session_configuration_details': 'NotebookSessionConfigurationDetails', + 'notebook_session_config_details': 'NotebookSessionConfigDetails', 'freeform_tags': 'dict(str, str)', 'defined_tags': 'dict(str, dict(str, object))' } @@ -57,6 +62,7 @@ def __init__(self, **kwargs): 'project_id': 'projectId', 'compartment_id': 'compartmentId', 'notebook_session_configuration_details': 'notebookSessionConfigurationDetails', + 'notebook_session_config_details': 'notebookSessionConfigDetails', 'freeform_tags': 'freeformTags', 'defined_tags': 'definedTags' } @@ -65,6 +71,7 @@ def __init__(self, **kwargs): self._project_id = None self._compartment_id = None self._notebook_session_configuration_details = None + self._notebook_session_config_details = None self._freeform_tags = None self._defined_tags = None @@ -153,7 +160,7 @@ def compartment_id(self, compartment_id): @property def notebook_session_configuration_details(self): """ - **[Required]** Gets the notebook_session_configuration_details of this CreateNotebookSessionDetails. + Gets the notebook_session_configuration_details of this CreateNotebookSessionDetails. :return: The notebook_session_configuration_details of this CreateNotebookSessionDetails. :rtype: oci.data_science.models.NotebookSessionConfigurationDetails @@ -170,6 +177,26 @@ def notebook_session_configuration_details(self, notebook_session_configuration_ """ self._notebook_session_configuration_details = notebook_session_configuration_details + @property + def notebook_session_config_details(self): + """ + Gets the notebook_session_config_details of this CreateNotebookSessionDetails. + + :return: The notebook_session_config_details of this CreateNotebookSessionDetails. + :rtype: oci.data_science.models.NotebookSessionConfigDetails + """ + return self._notebook_session_config_details + + @notebook_session_config_details.setter + def notebook_session_config_details(self, notebook_session_config_details): + """ + Sets the notebook_session_config_details of this CreateNotebookSessionDetails. + + :param notebook_session_config_details: The notebook_session_config_details of this CreateNotebookSessionDetails. + :type: oci.data_science.models.NotebookSessionConfigDetails + """ + self._notebook_session_config_details = notebook_session_config_details + @property def freeform_tags(self): """ diff --git a/src/oci/data_science/models/job_infrastructure_configuration_details.py b/src/oci/data_science/models/job_infrastructure_configuration_details.py index 95effaf500..6c8dea0542 100644 --- a/src/oci/data_science/models/job_infrastructure_configuration_details.py +++ b/src/oci/data_science/models/job_infrastructure_configuration_details.py @@ -17,18 +17,23 @@ class JobInfrastructureConfigurationDetails(object): #: This constant has a value of "STANDALONE" JOB_INFRASTRUCTURE_TYPE_STANDALONE = "STANDALONE" + #: A constant which can be used with the job_infrastructure_type property of a JobInfrastructureConfigurationDetails. + #: This constant has a value of "ME_STANDALONE" + JOB_INFRASTRUCTURE_TYPE_ME_STANDALONE = "ME_STANDALONE" + def __init__(self, **kwargs): """ Initializes a new JobInfrastructureConfigurationDetails 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.data_science.models.ManagedEgressStandaloneJobInfrastructureConfigurationDetails` * :class:`~oci.data_science.models.StandaloneJobInfrastructureConfigurationDetails` The following keyword arguments are supported (corresponding to the getters/setters of this class): :param job_infrastructure_type: The value to assign to the job_infrastructure_type property of this JobInfrastructureConfigurationDetails. - Allowed values for this property are: "STANDALONE", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "STANDALONE", "ME_STANDALONE", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. :type job_infrastructure_type: str @@ -51,6 +56,9 @@ def get_subtype(object_dictionary): """ type = object_dictionary['jobInfrastructureType'] + if type == 'ME_STANDALONE': + return 'ManagedEgressStandaloneJobInfrastructureConfigurationDetails' + if type == 'STANDALONE': return 'StandaloneJobInfrastructureConfigurationDetails' else: @@ -62,7 +70,7 @@ def job_infrastructure_type(self): **[Required]** Gets the job_infrastructure_type of this JobInfrastructureConfigurationDetails. The infrastructure type used for job run. - Allowed values for this property are: "STANDALONE", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "STANDALONE", "ME_STANDALONE", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. @@ -81,7 +89,7 @@ def job_infrastructure_type(self, job_infrastructure_type): :param job_infrastructure_type: The job_infrastructure_type of this JobInfrastructureConfigurationDetails. :type: str """ - allowed_values = ["STANDALONE"] + allowed_values = ["STANDALONE", "ME_STANDALONE"] if not value_allowed_none_or_none_sentinel(job_infrastructure_type, allowed_values): job_infrastructure_type = 'UNKNOWN_ENUM_VALUE' self._job_infrastructure_type = job_infrastructure_type diff --git a/src/oci/data_science/models/managed_egress_standalone_job_infrastructure_configuration_details.py b/src/oci/data_science/models/managed_egress_standalone_job_infrastructure_configuration_details.py new file mode 100644 index 0000000000..fbe7559480 --- /dev/null +++ b/src/oci/data_science/models/managed_egress_standalone_job_infrastructure_configuration_details.py @@ -0,0 +1,111 @@ +# coding: utf-8 +# Copyright (c) 2016, 2022, 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. + +from .job_infrastructure_configuration_details import JobInfrastructureConfigurationDetails +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 ManagedEgressStandaloneJobInfrastructureConfigurationDetails(JobInfrastructureConfigurationDetails): + """ + The standalone job infrastructure configuration with network egress settings preconfigured. + """ + + def __init__(self, **kwargs): + """ + Initializes a new ManagedEgressStandaloneJobInfrastructureConfigurationDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.data_science.models.ManagedEgressStandaloneJobInfrastructureConfigurationDetails.job_infrastructure_type` attribute + of this class is ``ME_STANDALONE`` and it should not be changed. + The following keyword arguments are supported (corresponding to the getters/setters of this class): + + :param job_infrastructure_type: + The value to assign to the job_infrastructure_type property of this ManagedEgressStandaloneJobInfrastructureConfigurationDetails. + Allowed values for this property are: "STANDALONE", "ME_STANDALONE" + :type job_infrastructure_type: str + + :param shape_name: + The value to assign to the shape_name property of this ManagedEgressStandaloneJobInfrastructureConfigurationDetails. + :type shape_name: str + + :param block_storage_size_in_gbs: + The value to assign to the block_storage_size_in_gbs property of this ManagedEgressStandaloneJobInfrastructureConfigurationDetails. + :type block_storage_size_in_gbs: int + + """ + self.swagger_types = { + 'job_infrastructure_type': 'str', + 'shape_name': 'str', + 'block_storage_size_in_gbs': 'int' + } + + self.attribute_map = { + 'job_infrastructure_type': 'jobInfrastructureType', + 'shape_name': 'shapeName', + 'block_storage_size_in_gbs': 'blockStorageSizeInGBs' + } + + self._job_infrastructure_type = None + self._shape_name = None + self._block_storage_size_in_gbs = None + self._job_infrastructure_type = 'ME_STANDALONE' + + @property + def shape_name(self): + """ + **[Required]** Gets the shape_name of this ManagedEgressStandaloneJobInfrastructureConfigurationDetails. + The shape used to launch the job run instances. + + + :return: The shape_name of this ManagedEgressStandaloneJobInfrastructureConfigurationDetails. + :rtype: str + """ + return self._shape_name + + @shape_name.setter + def shape_name(self, shape_name): + """ + Sets the shape_name of this ManagedEgressStandaloneJobInfrastructureConfigurationDetails. + The shape used to launch the job run instances. + + + :param shape_name: The shape_name of this ManagedEgressStandaloneJobInfrastructureConfigurationDetails. + :type: str + """ + self._shape_name = shape_name + + @property + def block_storage_size_in_gbs(self): + """ + **[Required]** Gets the block_storage_size_in_gbs of this ManagedEgressStandaloneJobInfrastructureConfigurationDetails. + The size of the block storage volume to attach to the instance running the job + + + :return: The block_storage_size_in_gbs of this ManagedEgressStandaloneJobInfrastructureConfigurationDetails. + :rtype: int + """ + return self._block_storage_size_in_gbs + + @block_storage_size_in_gbs.setter + def block_storage_size_in_gbs(self, block_storage_size_in_gbs): + """ + Sets the block_storage_size_in_gbs of this ManagedEgressStandaloneJobInfrastructureConfigurationDetails. + The size of the block storage volume to attach to the instance running the job + + + :param block_storage_size_in_gbs: The block_storage_size_in_gbs of this ManagedEgressStandaloneJobInfrastructureConfigurationDetails. + :type: int + """ + self._block_storage_size_in_gbs = block_storage_size_in_gbs + + 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_science/models/notebook_session.py b/src/oci/data_science/models/notebook_session.py index e792be8ca4..5cbe3345ea 100644 --- a/src/oci/data_science/models/notebook_session.py +++ b/src/oci/data_science/models/notebook_session.py @@ -74,6 +74,10 @@ def __init__(self, **kwargs): The value to assign to the notebook_session_configuration_details property of this NotebookSession. :type notebook_session_configuration_details: oci.data_science.models.NotebookSessionConfigurationDetails + :param notebook_session_config_details: + The value to assign to the notebook_session_config_details property of this NotebookSession. + :type notebook_session_config_details: oci.data_science.models.NotebookSessionConfigDetails + :param notebook_session_url: The value to assign to the notebook_session_url property of this NotebookSession. :type notebook_session_url: str @@ -105,6 +109,7 @@ def __init__(self, **kwargs): 'created_by': 'str', 'compartment_id': 'str', 'notebook_session_configuration_details': 'NotebookSessionConfigurationDetails', + 'notebook_session_config_details': 'NotebookSessionConfigDetails', 'notebook_session_url': 'str', 'lifecycle_state': 'str', 'lifecycle_details': 'str', @@ -120,6 +125,7 @@ def __init__(self, **kwargs): 'created_by': 'createdBy', 'compartment_id': 'compartmentId', 'notebook_session_configuration_details': 'notebookSessionConfigurationDetails', + 'notebook_session_config_details': 'notebookSessionConfigDetails', 'notebook_session_url': 'notebookSessionUrl', 'lifecycle_state': 'lifecycleState', 'lifecycle_details': 'lifecycleDetails', @@ -134,6 +140,7 @@ def __init__(self, **kwargs): self._created_by = None self._compartment_id = None self._notebook_session_configuration_details = None + self._notebook_session_config_details = None self._notebook_session_url = None self._lifecycle_state = None self._lifecycle_details = None @@ -328,6 +335,26 @@ def notebook_session_configuration_details(self, notebook_session_configuration_ """ self._notebook_session_configuration_details = notebook_session_configuration_details + @property + def notebook_session_config_details(self): + """ + Gets the notebook_session_config_details of this NotebookSession. + + :return: The notebook_session_config_details of this NotebookSession. + :rtype: oci.data_science.models.NotebookSessionConfigDetails + """ + return self._notebook_session_config_details + + @notebook_session_config_details.setter + def notebook_session_config_details(self, notebook_session_config_details): + """ + Sets the notebook_session_config_details of this NotebookSession. + + :param notebook_session_config_details: The notebook_session_config_details of this NotebookSession. + :type: oci.data_science.models.NotebookSessionConfigDetails + """ + self._notebook_session_config_details = notebook_session_config_details + @property def notebook_session_url(self): """ diff --git a/src/oci/data_science/models/notebook_session_config_details.py b/src/oci/data_science/models/notebook_session_config_details.py new file mode 100644 index 0000000000..29d53c99de --- /dev/null +++ b/src/oci/data_science/models/notebook_session_config_details.py @@ -0,0 +1,163 @@ +# coding: utf-8 +# Copyright (c) 2016, 2022, 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. + + +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 NotebookSessionConfigDetails(object): + """ + Details for the notebook session configuration. + """ + + def __init__(self, **kwargs): + """ + Initializes a new NotebookSessionConfigDetails object with values from keyword arguments. + The following keyword arguments are supported (corresponding to the getters/setters of this class): + + :param shape: + The value to assign to the shape property of this NotebookSessionConfigDetails. + :type shape: str + + :param block_storage_size_in_gbs: + The value to assign to the block_storage_size_in_gbs property of this NotebookSessionConfigDetails. + :type block_storage_size_in_gbs: int + + :param subnet_id: + The value to assign to the subnet_id property of this NotebookSessionConfigDetails. + :type subnet_id: str + + :param notebook_session_shape_config_details: + The value to assign to the notebook_session_shape_config_details property of this NotebookSessionConfigDetails. + :type notebook_session_shape_config_details: oci.data_science.models.NotebookSessionShapeConfigDetails + + """ + self.swagger_types = { + 'shape': 'str', + 'block_storage_size_in_gbs': 'int', + 'subnet_id': 'str', + 'notebook_session_shape_config_details': 'NotebookSessionShapeConfigDetails' + } + + self.attribute_map = { + 'shape': 'shape', + 'block_storage_size_in_gbs': 'blockStorageSizeInGBs', + 'subnet_id': 'subnetId', + 'notebook_session_shape_config_details': 'notebookSessionShapeConfigDetails' + } + + self._shape = None + self._block_storage_size_in_gbs = None + self._subnet_id = None + self._notebook_session_shape_config_details = None + + @property + def shape(self): + """ + **[Required]** Gets the shape of this NotebookSessionConfigDetails. + The shape used to launch the notebook session compute instance. The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint. + + + :return: The shape of this NotebookSessionConfigDetails. + :rtype: str + """ + return self._shape + + @shape.setter + def shape(self, shape): + """ + Sets the shape of this NotebookSessionConfigDetails. + The shape used to launch the notebook session compute instance. The list of available shapes in a given compartment can be retrieved using the `ListNotebookSessionShapes` endpoint. + + + :param shape: The shape of this NotebookSessionConfigDetails. + :type: str + """ + self._shape = shape + + @property + def block_storage_size_in_gbs(self): + """ + Gets the block_storage_size_in_gbs of this NotebookSessionConfigDetails. + A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs. + + + :return: The block_storage_size_in_gbs of this NotebookSessionConfigDetails. + :rtype: int + """ + return self._block_storage_size_in_gbs + + @block_storage_size_in_gbs.setter + def block_storage_size_in_gbs(self, block_storage_size_in_gbs): + """ + Sets the block_storage_size_in_gbs of this NotebookSessionConfigDetails. + A notebook session instance is provided with a block storage volume. This specifies the size of the volume in GBs. + + + :param block_storage_size_in_gbs: The block_storage_size_in_gbs of this NotebookSessionConfigDetails. + :type: int + """ + self._block_storage_size_in_gbs = block_storage_size_in_gbs + + @property + def subnet_id(self): + """ + Gets the subnet_id of this NotebookSessionConfigDetails. + A notebook session instance is provided with a VNIC for network access. This specifies the `OCID`__ of the subnet to create a VNIC in. The subnet should be in a VCN with a NAT gateway for egress to the internet. + + __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm + + + :return: The subnet_id of this NotebookSessionConfigDetails. + :rtype: str + """ + return self._subnet_id + + @subnet_id.setter + def subnet_id(self, subnet_id): + """ + Sets the subnet_id of this NotebookSessionConfigDetails. + A notebook session instance is provided with a VNIC for network access. This specifies the `OCID`__ of the subnet to create a VNIC in. The subnet should be in a VCN with a NAT gateway for egress to the internet. + + __ https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm + + + :param subnet_id: The subnet_id of this NotebookSessionConfigDetails. + :type: str + """ + self._subnet_id = subnet_id + + @property + def notebook_session_shape_config_details(self): + """ + Gets the notebook_session_shape_config_details of this NotebookSessionConfigDetails. + + :return: The notebook_session_shape_config_details of this NotebookSessionConfigDetails. + :rtype: oci.data_science.models.NotebookSessionShapeConfigDetails + """ + return self._notebook_session_shape_config_details + + @notebook_session_shape_config_details.setter + def notebook_session_shape_config_details(self, notebook_session_shape_config_details): + """ + Sets the notebook_session_shape_config_details of this NotebookSessionConfigDetails. + + :param notebook_session_shape_config_details: The notebook_session_shape_config_details of this NotebookSessionConfigDetails. + :type: oci.data_science.models.NotebookSessionShapeConfigDetails + """ + self._notebook_session_shape_config_details = notebook_session_shape_config_details + + 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_science/models/notebook_session_summary.py b/src/oci/data_science/models/notebook_session_summary.py index 13f8dd01a8..a2aa888a3a 100644 --- a/src/oci/data_science/models/notebook_session_summary.py +++ b/src/oci/data_science/models/notebook_session_summary.py @@ -74,6 +74,10 @@ def __init__(self, **kwargs): The value to assign to the notebook_session_configuration_details property of this NotebookSessionSummary. :type notebook_session_configuration_details: oci.data_science.models.NotebookSessionConfigurationDetails + :param notebook_session_config_details: + The value to assign to the notebook_session_config_details property of this NotebookSessionSummary. + :type notebook_session_config_details: oci.data_science.models.NotebookSessionConfigDetails + :param notebook_session_url: The value to assign to the notebook_session_url property of this NotebookSessionSummary. :type notebook_session_url: str @@ -101,6 +105,7 @@ def __init__(self, **kwargs): 'created_by': 'str', 'compartment_id': 'str', 'notebook_session_configuration_details': 'NotebookSessionConfigurationDetails', + 'notebook_session_config_details': 'NotebookSessionConfigDetails', 'notebook_session_url': 'str', 'lifecycle_state': 'str', 'freeform_tags': 'dict(str, str)', @@ -115,6 +120,7 @@ def __init__(self, **kwargs): 'created_by': 'createdBy', 'compartment_id': 'compartmentId', 'notebook_session_configuration_details': 'notebookSessionConfigurationDetails', + 'notebook_session_config_details': 'notebookSessionConfigDetails', 'notebook_session_url': 'notebookSessionUrl', 'lifecycle_state': 'lifecycleState', 'freeform_tags': 'freeformTags', @@ -128,6 +134,7 @@ def __init__(self, **kwargs): self._created_by = None self._compartment_id = None self._notebook_session_configuration_details = None + self._notebook_session_config_details = None self._notebook_session_url = None self._lifecycle_state = None self._freeform_tags = None @@ -321,6 +328,26 @@ def notebook_session_configuration_details(self, notebook_session_configuration_ """ self._notebook_session_configuration_details = notebook_session_configuration_details + @property + def notebook_session_config_details(self): + """ + Gets the notebook_session_config_details of this NotebookSessionSummary. + + :return: The notebook_session_config_details of this NotebookSessionSummary. + :rtype: oci.data_science.models.NotebookSessionConfigDetails + """ + return self._notebook_session_config_details + + @notebook_session_config_details.setter + def notebook_session_config_details(self, notebook_session_config_details): + """ + Sets the notebook_session_config_details of this NotebookSessionSummary. + + :param notebook_session_config_details: The notebook_session_config_details of this NotebookSessionSummary. + :type: oci.data_science.models.NotebookSessionConfigDetails + """ + self._notebook_session_config_details = notebook_session_config_details + @property def notebook_session_url(self): """ diff --git a/src/oci/data_science/models/standalone_job_infrastructure_configuration_details.py b/src/oci/data_science/models/standalone_job_infrastructure_configuration_details.py index 32b586d574..55566a40a2 100644 --- a/src/oci/data_science/models/standalone_job_infrastructure_configuration_details.py +++ b/src/oci/data_science/models/standalone_job_infrastructure_configuration_details.py @@ -21,7 +21,7 @@ def __init__(self, **kwargs): :param job_infrastructure_type: The value to assign to the job_infrastructure_type property of this StandaloneJobInfrastructureConfigurationDetails. - Allowed values for this property are: "STANDALONE" + Allowed values for this property are: "STANDALONE", "ME_STANDALONE" :type job_infrastructure_type: str :param shape_name: diff --git a/src/oci/database/database_client.py b/src/oci/database/database_client.py index 67be205a85..f9b62ed869 100644 --- a/src/oci/database/database_client.py +++ b/src/oci/database/database_client.py @@ -22223,6 +22223,94 @@ def scan_external_container_database_pluggable_databases(self, external_containe query_params=query_params, header_params=header_params) + def shrink_autonomous_database(self, autonomous_database_id, **kwargs): + """ + This operation shrinks the current allocated storage down to the current actual used data storage (actualUsedDataStorageSizeInTBs). The if the base storage value for the database (dataStorageSizeInTBs) is larger than the actualUsedDataStorageSizeInTBs value, you are billed for the base storage value. + + + :param str autonomous_database_id: (required) + The database `OCID`__. + + __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm + + :param str if_match: (optional) + For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` + parameter to the value of the etag from a previous GET or POST response for that resource. The resource + will be updated or deleted only if the etag you provide matches the resource's current etag value. + + :param obj retry_strategy: (optional) + A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level. + + This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation will not retry by default, users can also use the convenient :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` provided by the SDK to enable retries for it. + The specifics of the default retry strategy are described `here `__. + + To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`. + + :param bool allow_control_chars: (optional) + allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object. + By default, the response will not allow control characters in strings + + :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.database.models.AutonomousDatabase` + :rtype: :class:`~oci.response.Response` + + :example: + Click `here `__ to see an example of how to use shrink_autonomous_database API. + """ + resource_path = "/autonomousDatabases/{autonomousDatabaseId}/actions/shrink" + method = "POST" + + # Don't accept unknown kwargs + expected_kwargs = [ + "allow_control_chars", + "retry_strategy", + "if_match" + ] + extra_kwargs = [_key for _key in six.iterkeys(kwargs) if _key not in expected_kwargs] + if extra_kwargs: + raise ValueError( + "shrink_autonomous_database got unknown kwargs: {!r}".format(extra_kwargs)) + + path_params = { + "autonomousDatabaseId": autonomous_database_id + } + + path_params = {k: v for (k, v) in six.iteritems(path_params) if v is not missing} + + for (k, v) in six.iteritems(path_params): + if v is None or (isinstance(v, six.string_types) and len(v.strip()) == 0): + raise ValueError('Parameter {} cannot be None, whitespace or empty string'.format(k)) + + header_params = { + "accept": "application/json", + "content-type": "application/json", + "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, + response_type="AutonomousDatabase") + else: + return self.base_client.call_api( + resource_path=resource_path, + method=method, + path_params=path_params, + header_params=header_params, + response_type="AutonomousDatabase") + def start_autonomous_database(self, autonomous_database_id, **kwargs): """ Starts the specified Autonomous Database. diff --git a/src/oci/database/database_client_composite_operations.py b/src/oci/database/database_client_composite_operations.py index 03b7ed0557..07797ba24c 100644 --- a/src/oci/database/database_client_composite_operations.py +++ b/src/oci/database/database_client_composite_operations.py @@ -6227,6 +6227,83 @@ def scan_external_container_database_pluggable_databases_and_wait_for_work_reque except Exception as e: raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e) + def shrink_autonomous_database_and_wait_for_work_request(self, autonomous_database_id, work_request_states=[], operation_kwargs={}, waiter_kwargs={}): + """ + Calls :py:func:`~oci.database.DatabaseClient.shrink_autonomous_database` and waits for the oci.work_requests.models.WorkRequest + to enter the given state(s). + + :param str autonomous_database_id: (required) + The database `OCID`__. + + __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm + + :param list[str] work_request_states: (optional) + An array of work requests states to wait on. These should be valid values for :py:attr:`~oci.work_requests.models.WorkRequest.status` + Default values are termination states: [STATUS_SUCCEEDED, STATUS_FAILED, STATUS_CANCELED] + + :param dict operation_kwargs: + A dictionary of keyword arguments to pass to :py:func:`~oci.database.DatabaseClient.shrink_autonomous_database` + + :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.shrink_autonomous_database(autonomous_database_id, **operation_kwargs) + work_request_states = work_request_states if work_request_states else oci.waiter._WORK_REQUEST_TERMINATION_STATES + lowered_work_request_states = [w.lower() for w in work_request_states] + work_request_id = operation_result.headers['opc-work-request-id'] + + try: + waiter_result = oci.wait_until( + self._work_request_client, + self._work_request_client.get_work_request(work_request_id), + evaluate_response=lambda r: getattr(r.data, 'status') and getattr(r.data, 'status').lower() in lowered_work_request_states, + **waiter_kwargs + ) + return waiter_result + except Exception as e: + raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e) + + def shrink_autonomous_database_and_wait_for_state(self, autonomous_database_id, wait_for_states=[], operation_kwargs={}, waiter_kwargs={}): + """ + Calls :py:func:`~oci.database.DatabaseClient.shrink_autonomous_database` and waits for the :py:class:`~oci.database.models.AutonomousDatabase` acted upon + to enter the given state(s). + + :param str autonomous_database_id: (required) + The database `OCID`__. + + __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm + + :param list[str] wait_for_states: + An array of states to wait on. These should be valid values for :py:attr:`~oci.database.models.AutonomousDatabase.lifecycle_state` + + :param dict operation_kwargs: + A dictionary of keyword arguments to pass to :py:func:`~oci.database.DatabaseClient.shrink_autonomous_database` + + :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.shrink_autonomous_database(autonomous_database_id, **operation_kwargs) + if not wait_for_states: + return operation_result + + lowered_wait_for_states = [w.lower() for w in wait_for_states] + wait_for_resource_id = operation_result.data.id + + try: + waiter_result = oci.wait_until( + self.client, + self.client.get_autonomous_database(wait_for_resource_id), + evaluate_response=lambda r: getattr(r.data, 'lifecycle_state') and getattr(r.data, 'lifecycle_state').lower() in lowered_wait_for_states, + **waiter_kwargs + ) + result_to_return = waiter_result + + return result_to_return + except Exception as e: + raise oci.exceptions.CompositeOperationError(partial_results=[operation_result], cause=e) + def start_autonomous_database_and_wait_for_work_request(self, autonomous_database_id, work_request_states=[], operation_kwargs={}, waiter_kwargs={}): """ Calls :py:func:`~oci.database.DatabaseClient.start_autonomous_database` and waits for the oci.work_requests.models.WorkRequest diff --git a/src/oci/database/models/__init__.py b/src/oci/database/models/__init__.py index 4ed1873eaf..83df902bf0 100644 --- a/src/oci/database/models/__init__.py +++ b/src/oci/database/models/__init__.py @@ -147,6 +147,7 @@ from .db_node_summary import DbNodeSummary from .db_server import DbServer from .db_server_details import DbServerDetails +from .db_server_patching_details import DbServerPatchingDetails from .db_server_summary import DbServerSummary from .db_system import DbSystem from .db_system_options import DbSystemOptions @@ -162,6 +163,7 @@ from .enable_external_non_container_database_operations_insights_details import EnableExternalNonContainerDatabaseOperationsInsightsDetails from .enable_external_pluggable_database_database_management_details import EnableExternalPluggableDatabaseDatabaseManagementDetails from .enable_external_pluggable_database_operations_insights_details import EnableExternalPluggableDatabaseOperationsInsightsDetails +from .estimated_patching_time import EstimatedPatchingTime from .exadata_db_system_migration import ExadataDbSystemMigration from .exadata_db_system_migration_summary import ExadataDbSystemMigrationSummary from .exadata_infrastructure import ExadataInfrastructure @@ -423,6 +425,7 @@ "DbNodeSummary": DbNodeSummary, "DbServer": DbServer, "DbServerDetails": DbServerDetails, + "DbServerPatchingDetails": DbServerPatchingDetails, "DbServerSummary": DbServerSummary, "DbSystem": DbSystem, "DbSystemOptions": DbSystemOptions, @@ -438,6 +441,7 @@ "EnableExternalNonContainerDatabaseOperationsInsightsDetails": EnableExternalNonContainerDatabaseOperationsInsightsDetails, "EnableExternalPluggableDatabaseDatabaseManagementDetails": EnableExternalPluggableDatabaseDatabaseManagementDetails, "EnableExternalPluggableDatabaseOperationsInsightsDetails": EnableExternalPluggableDatabaseOperationsInsightsDetails, + "EstimatedPatchingTime": EstimatedPatchingTime, "ExadataDbSystemMigration": ExadataDbSystemMigration, "ExadataDbSystemMigrationSummary": ExadataDbSystemMigrationSummary, "ExadataInfrastructure": ExadataInfrastructure, diff --git a/src/oci/database/models/autonomous_database.py b/src/oci/database/models/autonomous_database.py index b843204f9d..17cdaa1004 100644 --- a/src/oci/database/models/autonomous_database.py +++ b/src/oci/database/models/autonomous_database.py @@ -602,6 +602,18 @@ def __init__(self, **kwargs): The value to assign to the scheduled_operations property of this AutonomousDatabase. :type scheduled_operations: list[oci.database.models.ScheduledOperationDetails] + :param is_auto_scaling_for_storage_enabled: + The value to assign to the is_auto_scaling_for_storage_enabled property of this AutonomousDatabase. + :type is_auto_scaling_for_storage_enabled: bool + + :param allocated_storage_size_in_tbs: + The value to assign to the allocated_storage_size_in_tbs property of this AutonomousDatabase. + :type allocated_storage_size_in_tbs: float + + :param actual_used_data_storage_size_in_tbs: + The value to assign to the actual_used_data_storage_size_in_tbs property of this AutonomousDatabase. + :type actual_used_data_storage_size_in_tbs: float + """ self.swagger_types = { 'id': 'str', @@ -682,7 +694,10 @@ def __init__(self, **kwargs): 'is_reconnect_clone_enabled': 'bool', 'time_until_reconnect_clone_enabled': 'datetime', 'autonomous_maintenance_schedule_type': 'str', - 'scheduled_operations': 'list[ScheduledOperationDetails]' + 'scheduled_operations': 'list[ScheduledOperationDetails]', + 'is_auto_scaling_for_storage_enabled': 'bool', + 'allocated_storage_size_in_tbs': 'float', + 'actual_used_data_storage_size_in_tbs': 'float' } self.attribute_map = { @@ -764,7 +779,10 @@ def __init__(self, **kwargs): 'is_reconnect_clone_enabled': 'isReconnectCloneEnabled', 'time_until_reconnect_clone_enabled': 'timeUntilReconnectCloneEnabled', 'autonomous_maintenance_schedule_type': 'autonomousMaintenanceScheduleType', - 'scheduled_operations': 'scheduledOperations' + 'scheduled_operations': 'scheduledOperations', + 'is_auto_scaling_for_storage_enabled': 'isAutoScalingForStorageEnabled', + 'allocated_storage_size_in_tbs': 'allocatedStorageSizeInTBs', + 'actual_used_data_storage_size_in_tbs': 'actualUsedDataStorageSizeInTBs' } self._id = None @@ -846,6 +864,9 @@ def __init__(self, **kwargs): self._time_until_reconnect_clone_enabled = None self._autonomous_maintenance_schedule_type = None self._scheduled_operations = None + self._is_auto_scaling_for_storage_enabled = None + self._allocated_storage_size_in_tbs = None + self._actual_used_data_storage_size_in_tbs = None @property def id(self): @@ -3017,6 +3038,82 @@ def scheduled_operations(self, scheduled_operations): """ self._scheduled_operations = scheduled_operations + @property + def is_auto_scaling_for_storage_enabled(self): + """ + Gets the is_auto_scaling_for_storage_enabled of this AutonomousDatabase. + Indicates if auto scaling is enabled for the Autonomous Database storage. The default value is `FALSE`. + + + :return: The is_auto_scaling_for_storage_enabled of this AutonomousDatabase. + :rtype: bool + """ + return self._is_auto_scaling_for_storage_enabled + + @is_auto_scaling_for_storage_enabled.setter + def is_auto_scaling_for_storage_enabled(self, is_auto_scaling_for_storage_enabled): + """ + Sets the is_auto_scaling_for_storage_enabled of this AutonomousDatabase. + Indicates if auto scaling is enabled for the Autonomous Database storage. The default value is `FALSE`. + + + :param is_auto_scaling_for_storage_enabled: The is_auto_scaling_for_storage_enabled of this AutonomousDatabase. + :type: bool + """ + self._is_auto_scaling_for_storage_enabled = is_auto_scaling_for_storage_enabled + + @property + def allocated_storage_size_in_tbs(self): + """ + Gets the allocated_storage_size_in_tbs of this AutonomousDatabase. + The amount of storage currently allocated for the database tables and billed for, rounded up. When auto-scaling is not enabled, this value is equal to the `dataStorageSizeInTBs` value. You can compare this value to the `actualUsedDataStorageSizeInTBs` value to determine if a manual shrink operation is appropriate for your allocated storage. + + **Note:** Auto-scaling does not automatically decrease allocated storage when data is deleted from the database. + + + :return: The allocated_storage_size_in_tbs of this AutonomousDatabase. + :rtype: float + """ + return self._allocated_storage_size_in_tbs + + @allocated_storage_size_in_tbs.setter + def allocated_storage_size_in_tbs(self, allocated_storage_size_in_tbs): + """ + Sets the allocated_storage_size_in_tbs of this AutonomousDatabase. + The amount of storage currently allocated for the database tables and billed for, rounded up. When auto-scaling is not enabled, this value is equal to the `dataStorageSizeInTBs` value. You can compare this value to the `actualUsedDataStorageSizeInTBs` value to determine if a manual shrink operation is appropriate for your allocated storage. + + **Note:** Auto-scaling does not automatically decrease allocated storage when data is deleted from the database. + + + :param allocated_storage_size_in_tbs: The allocated_storage_size_in_tbs of this AutonomousDatabase. + :type: float + """ + self._allocated_storage_size_in_tbs = allocated_storage_size_in_tbs + + @property + def actual_used_data_storage_size_in_tbs(self): + """ + Gets the actual_used_data_storage_size_in_tbs of this AutonomousDatabase. + The current amount of storage in use for user and system data, in terabytes (TB). + + + :return: The actual_used_data_storage_size_in_tbs of this AutonomousDatabase. + :rtype: float + """ + return self._actual_used_data_storage_size_in_tbs + + @actual_used_data_storage_size_in_tbs.setter + def actual_used_data_storage_size_in_tbs(self, actual_used_data_storage_size_in_tbs): + """ + Sets the actual_used_data_storage_size_in_tbs of this AutonomousDatabase. + The current amount of storage in use for user and system data, in terabytes (TB). + + + :param actual_used_data_storage_size_in_tbs: The actual_used_data_storage_size_in_tbs of this AutonomousDatabase. + :type: float + """ + self._actual_used_data_storage_size_in_tbs = actual_used_data_storage_size_in_tbs + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/database/models/autonomous_database_summary.py b/src/oci/database/models/autonomous_database_summary.py index 2170075e9f..668c89b1a2 100644 --- a/src/oci/database/models/autonomous_database_summary.py +++ b/src/oci/database/models/autonomous_database_summary.py @@ -604,6 +604,18 @@ def __init__(self, **kwargs): The value to assign to the scheduled_operations property of this AutonomousDatabaseSummary. :type scheduled_operations: list[oci.database.models.ScheduledOperationDetails] + :param is_auto_scaling_for_storage_enabled: + The value to assign to the is_auto_scaling_for_storage_enabled property of this AutonomousDatabaseSummary. + :type is_auto_scaling_for_storage_enabled: bool + + :param allocated_storage_size_in_tbs: + The value to assign to the allocated_storage_size_in_tbs property of this AutonomousDatabaseSummary. + :type allocated_storage_size_in_tbs: float + + :param actual_used_data_storage_size_in_tbs: + The value to assign to the actual_used_data_storage_size_in_tbs property of this AutonomousDatabaseSummary. + :type actual_used_data_storage_size_in_tbs: float + """ self.swagger_types = { 'id': 'str', @@ -684,7 +696,10 @@ def __init__(self, **kwargs): 'is_reconnect_clone_enabled': 'bool', 'time_until_reconnect_clone_enabled': 'datetime', 'autonomous_maintenance_schedule_type': 'str', - 'scheduled_operations': 'list[ScheduledOperationDetails]' + 'scheduled_operations': 'list[ScheduledOperationDetails]', + 'is_auto_scaling_for_storage_enabled': 'bool', + 'allocated_storage_size_in_tbs': 'float', + 'actual_used_data_storage_size_in_tbs': 'float' } self.attribute_map = { @@ -766,7 +781,10 @@ def __init__(self, **kwargs): 'is_reconnect_clone_enabled': 'isReconnectCloneEnabled', 'time_until_reconnect_clone_enabled': 'timeUntilReconnectCloneEnabled', 'autonomous_maintenance_schedule_type': 'autonomousMaintenanceScheduleType', - 'scheduled_operations': 'scheduledOperations' + 'scheduled_operations': 'scheduledOperations', + 'is_auto_scaling_for_storage_enabled': 'isAutoScalingForStorageEnabled', + 'allocated_storage_size_in_tbs': 'allocatedStorageSizeInTBs', + 'actual_used_data_storage_size_in_tbs': 'actualUsedDataStorageSizeInTBs' } self._id = None @@ -848,6 +866,9 @@ def __init__(self, **kwargs): self._time_until_reconnect_clone_enabled = None self._autonomous_maintenance_schedule_type = None self._scheduled_operations = None + self._is_auto_scaling_for_storage_enabled = None + self._allocated_storage_size_in_tbs = None + self._actual_used_data_storage_size_in_tbs = None @property def id(self): @@ -3019,6 +3040,82 @@ def scheduled_operations(self, scheduled_operations): """ self._scheduled_operations = scheduled_operations + @property + def is_auto_scaling_for_storage_enabled(self): + """ + Gets the is_auto_scaling_for_storage_enabled of this AutonomousDatabaseSummary. + Indicates if auto scaling is enabled for the Autonomous Database storage. The default value is `FALSE`. + + + :return: The is_auto_scaling_for_storage_enabled of this AutonomousDatabaseSummary. + :rtype: bool + """ + return self._is_auto_scaling_for_storage_enabled + + @is_auto_scaling_for_storage_enabled.setter + def is_auto_scaling_for_storage_enabled(self, is_auto_scaling_for_storage_enabled): + """ + Sets the is_auto_scaling_for_storage_enabled of this AutonomousDatabaseSummary. + Indicates if auto scaling is enabled for the Autonomous Database storage. The default value is `FALSE`. + + + :param is_auto_scaling_for_storage_enabled: The is_auto_scaling_for_storage_enabled of this AutonomousDatabaseSummary. + :type: bool + """ + self._is_auto_scaling_for_storage_enabled = is_auto_scaling_for_storage_enabled + + @property + def allocated_storage_size_in_tbs(self): + """ + Gets the allocated_storage_size_in_tbs of this AutonomousDatabaseSummary. + The amount of storage currently allocated for the database tables and billed for, rounded up. When auto-scaling is not enabled, this value is equal to the `dataStorageSizeInTBs` value. You can compare this value to the `actualUsedDataStorageSizeInTBs` value to determine if a manual shrink operation is appropriate for your allocated storage. + + **Note:** Auto-scaling does not automatically decrease allocated storage when data is deleted from the database. + + + :return: The allocated_storage_size_in_tbs of this AutonomousDatabaseSummary. + :rtype: float + """ + return self._allocated_storage_size_in_tbs + + @allocated_storage_size_in_tbs.setter + def allocated_storage_size_in_tbs(self, allocated_storage_size_in_tbs): + """ + Sets the allocated_storage_size_in_tbs of this AutonomousDatabaseSummary. + The amount of storage currently allocated for the database tables and billed for, rounded up. When auto-scaling is not enabled, this value is equal to the `dataStorageSizeInTBs` value. You can compare this value to the `actualUsedDataStorageSizeInTBs` value to determine if a manual shrink operation is appropriate for your allocated storage. + + **Note:** Auto-scaling does not automatically decrease allocated storage when data is deleted from the database. + + + :param allocated_storage_size_in_tbs: The allocated_storage_size_in_tbs of this AutonomousDatabaseSummary. + :type: float + """ + self._allocated_storage_size_in_tbs = allocated_storage_size_in_tbs + + @property + def actual_used_data_storage_size_in_tbs(self): + """ + Gets the actual_used_data_storage_size_in_tbs of this AutonomousDatabaseSummary. + The current amount of storage in use for user and system data, in terabytes (TB). + + + :return: The actual_used_data_storage_size_in_tbs of this AutonomousDatabaseSummary. + :rtype: float + """ + return self._actual_used_data_storage_size_in_tbs + + @actual_used_data_storage_size_in_tbs.setter + def actual_used_data_storage_size_in_tbs(self, actual_used_data_storage_size_in_tbs): + """ + Sets the actual_used_data_storage_size_in_tbs of this AutonomousDatabaseSummary. + The current amount of storage in use for user and system data, in terabytes (TB). + + + :param actual_used_data_storage_size_in_tbs: The actual_used_data_storage_size_in_tbs of this AutonomousDatabaseSummary. + :type: float + """ + self._actual_used_data_storage_size_in_tbs = actual_used_data_storage_size_in_tbs + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/database/models/create_autonomous_database_base.py b/src/oci/database/models/create_autonomous_database_base.py index d9476cb662..54e5fc80e7 100644 --- a/src/oci/database/models/create_autonomous_database_base.py +++ b/src/oci/database/models/create_autonomous_database_base.py @@ -226,6 +226,10 @@ def __init__(self, **kwargs): The value to assign to the scheduled_operations property of this CreateAutonomousDatabaseBase. :type scheduled_operations: list[oci.database.models.ScheduledOperationDetails] + :param is_auto_scaling_for_storage_enabled: + The value to assign to the is_auto_scaling_for_storage_enabled property of this CreateAutonomousDatabaseBase. + :type is_auto_scaling_for_storage_enabled: bool + """ self.swagger_types = { 'compartment_id': 'str', @@ -260,7 +264,8 @@ def __init__(self, **kwargs): 'customer_contacts': 'list[CustomerContact]', 'is_mtls_connection_required': 'bool', 'autonomous_maintenance_schedule_type': 'str', - 'scheduled_operations': 'list[ScheduledOperationDetails]' + 'scheduled_operations': 'list[ScheduledOperationDetails]', + 'is_auto_scaling_for_storage_enabled': 'bool' } self.attribute_map = { @@ -296,7 +301,8 @@ def __init__(self, **kwargs): 'customer_contacts': 'customerContacts', 'is_mtls_connection_required': 'isMtlsConnectionRequired', 'autonomous_maintenance_schedule_type': 'autonomousMaintenanceScheduleType', - 'scheduled_operations': 'scheduledOperations' + 'scheduled_operations': 'scheduledOperations', + 'is_auto_scaling_for_storage_enabled': 'isAutoScalingForStorageEnabled' } self._compartment_id = None @@ -332,6 +338,7 @@ def __init__(self, **kwargs): self._is_mtls_connection_required = None self._autonomous_maintenance_schedule_type = None self._scheduled_operations = None + self._is_auto_scaling_for_storage_enabled = None @staticmethod def get_subtype(object_dictionary): @@ -1399,6 +1406,30 @@ def scheduled_operations(self, scheduled_operations): """ self._scheduled_operations = scheduled_operations + @property + def is_auto_scaling_for_storage_enabled(self): + """ + Gets the is_auto_scaling_for_storage_enabled of this CreateAutonomousDatabaseBase. + Indicates if auto scaling is enabled for the Autonomous Database storage. The default value is `FALSE`. + + + :return: The is_auto_scaling_for_storage_enabled of this CreateAutonomousDatabaseBase. + :rtype: bool + """ + return self._is_auto_scaling_for_storage_enabled + + @is_auto_scaling_for_storage_enabled.setter + def is_auto_scaling_for_storage_enabled(self, is_auto_scaling_for_storage_enabled): + """ + Sets the is_auto_scaling_for_storage_enabled of this CreateAutonomousDatabaseBase. + Indicates if auto scaling is enabled for the Autonomous Database storage. The default value is `FALSE`. + + + :param is_auto_scaling_for_storage_enabled: The is_auto_scaling_for_storage_enabled of this CreateAutonomousDatabaseBase. + :type: bool + """ + self._is_auto_scaling_for_storage_enabled = is_auto_scaling_for_storage_enabled + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/database/models/create_autonomous_database_clone_details.py b/src/oci/database/models/create_autonomous_database_clone_details.py index 9fc84de521..4c25e43b6f 100644 --- a/src/oci/database/models/create_autonomous_database_clone_details.py +++ b/src/oci/database/models/create_autonomous_database_clone_details.py @@ -163,6 +163,10 @@ def __init__(self, **kwargs): The value to assign to the scheduled_operations property of this CreateAutonomousDatabaseCloneDetails. :type scheduled_operations: list[oci.database.models.ScheduledOperationDetails] + :param is_auto_scaling_for_storage_enabled: + The value to assign to the is_auto_scaling_for_storage_enabled property of this CreateAutonomousDatabaseCloneDetails. + :type is_auto_scaling_for_storage_enabled: bool + :param source_id: The value to assign to the source_id property of this CreateAutonomousDatabaseCloneDetails. :type source_id: str @@ -207,6 +211,7 @@ def __init__(self, **kwargs): 'is_mtls_connection_required': 'bool', 'autonomous_maintenance_schedule_type': 'str', 'scheduled_operations': 'list[ScheduledOperationDetails]', + 'is_auto_scaling_for_storage_enabled': 'bool', 'source_id': 'str', 'clone_type': 'str' } @@ -245,6 +250,7 @@ def __init__(self, **kwargs): 'is_mtls_connection_required': 'isMtlsConnectionRequired', 'autonomous_maintenance_schedule_type': 'autonomousMaintenanceScheduleType', 'scheduled_operations': 'scheduledOperations', + 'is_auto_scaling_for_storage_enabled': 'isAutoScalingForStorageEnabled', 'source_id': 'sourceId', 'clone_type': 'cloneType' } @@ -282,6 +288,7 @@ def __init__(self, **kwargs): self._is_mtls_connection_required = None self._autonomous_maintenance_schedule_type = None self._scheduled_operations = None + self._is_auto_scaling_for_storage_enabled = None self._source_id = None self._clone_type = None self._source = 'DATABASE' diff --git a/src/oci/database/models/create_autonomous_database_details.py b/src/oci/database/models/create_autonomous_database_details.py index 931b08a15b..3efe8bae86 100644 --- a/src/oci/database/models/create_autonomous_database_details.py +++ b/src/oci/database/models/create_autonomous_database_details.py @@ -155,6 +155,10 @@ def __init__(self, **kwargs): The value to assign to the scheduled_operations property of this CreateAutonomousDatabaseDetails. :type scheduled_operations: list[oci.database.models.ScheduledOperationDetails] + :param is_auto_scaling_for_storage_enabled: + The value to assign to the is_auto_scaling_for_storage_enabled property of this CreateAutonomousDatabaseDetails. + :type is_auto_scaling_for_storage_enabled: bool + """ self.swagger_types = { 'compartment_id': 'str', @@ -189,7 +193,8 @@ def __init__(self, **kwargs): 'customer_contacts': 'list[CustomerContact]', 'is_mtls_connection_required': 'bool', 'autonomous_maintenance_schedule_type': 'str', - 'scheduled_operations': 'list[ScheduledOperationDetails]' + 'scheduled_operations': 'list[ScheduledOperationDetails]', + 'is_auto_scaling_for_storage_enabled': 'bool' } self.attribute_map = { @@ -225,7 +230,8 @@ def __init__(self, **kwargs): 'customer_contacts': 'customerContacts', 'is_mtls_connection_required': 'isMtlsConnectionRequired', 'autonomous_maintenance_schedule_type': 'autonomousMaintenanceScheduleType', - 'scheduled_operations': 'scheduledOperations' + 'scheduled_operations': 'scheduledOperations', + 'is_auto_scaling_for_storage_enabled': 'isAutoScalingForStorageEnabled' } self._compartment_id = None @@ -261,6 +267,7 @@ def __init__(self, **kwargs): self._is_mtls_connection_required = None self._autonomous_maintenance_schedule_type = None self._scheduled_operations = None + self._is_auto_scaling_for_storage_enabled = None self._source = 'NONE' def __repr__(self): diff --git a/src/oci/database/models/create_autonomous_database_from_backup_details.py b/src/oci/database/models/create_autonomous_database_from_backup_details.py index bdbe5c7dc5..fcfda5c577 100644 --- a/src/oci/database/models/create_autonomous_database_from_backup_details.py +++ b/src/oci/database/models/create_autonomous_database_from_backup_details.py @@ -163,6 +163,10 @@ def __init__(self, **kwargs): The value to assign to the scheduled_operations property of this CreateAutonomousDatabaseFromBackupDetails. :type scheduled_operations: list[oci.database.models.ScheduledOperationDetails] + :param is_auto_scaling_for_storage_enabled: + The value to assign to the is_auto_scaling_for_storage_enabled property of this CreateAutonomousDatabaseFromBackupDetails. + :type is_auto_scaling_for_storage_enabled: bool + :param autonomous_database_backup_id: The value to assign to the autonomous_database_backup_id property of this CreateAutonomousDatabaseFromBackupDetails. :type autonomous_database_backup_id: str @@ -207,6 +211,7 @@ def __init__(self, **kwargs): 'is_mtls_connection_required': 'bool', 'autonomous_maintenance_schedule_type': 'str', 'scheduled_operations': 'list[ScheduledOperationDetails]', + 'is_auto_scaling_for_storage_enabled': 'bool', 'autonomous_database_backup_id': 'str', 'clone_type': 'str' } @@ -245,6 +250,7 @@ def __init__(self, **kwargs): 'is_mtls_connection_required': 'isMtlsConnectionRequired', 'autonomous_maintenance_schedule_type': 'autonomousMaintenanceScheduleType', 'scheduled_operations': 'scheduledOperations', + 'is_auto_scaling_for_storage_enabled': 'isAutoScalingForStorageEnabled', 'autonomous_database_backup_id': 'autonomousDatabaseBackupId', 'clone_type': 'cloneType' } @@ -282,6 +288,7 @@ def __init__(self, **kwargs): self._is_mtls_connection_required = None self._autonomous_maintenance_schedule_type = None self._scheduled_operations = None + self._is_auto_scaling_for_storage_enabled = None self._autonomous_database_backup_id = None self._clone_type = None self._source = 'BACKUP_FROM_ID' diff --git a/src/oci/database/models/create_autonomous_database_from_backup_timestamp_details.py b/src/oci/database/models/create_autonomous_database_from_backup_timestamp_details.py index 621ab0b5b7..e0d20ff441 100644 --- a/src/oci/database/models/create_autonomous_database_from_backup_timestamp_details.py +++ b/src/oci/database/models/create_autonomous_database_from_backup_timestamp_details.py @@ -163,6 +163,10 @@ def __init__(self, **kwargs): The value to assign to the scheduled_operations property of this CreateAutonomousDatabaseFromBackupTimestampDetails. :type scheduled_operations: list[oci.database.models.ScheduledOperationDetails] + :param is_auto_scaling_for_storage_enabled: + The value to assign to the is_auto_scaling_for_storage_enabled property of this CreateAutonomousDatabaseFromBackupTimestampDetails. + :type is_auto_scaling_for_storage_enabled: bool + :param autonomous_database_id: The value to assign to the autonomous_database_id property of this CreateAutonomousDatabaseFromBackupTimestampDetails. :type autonomous_database_id: str @@ -211,6 +215,7 @@ def __init__(self, **kwargs): 'is_mtls_connection_required': 'bool', 'autonomous_maintenance_schedule_type': 'str', 'scheduled_operations': 'list[ScheduledOperationDetails]', + 'is_auto_scaling_for_storage_enabled': 'bool', 'autonomous_database_id': 'str', 'timestamp': 'datetime', 'clone_type': 'str' @@ -250,6 +255,7 @@ def __init__(self, **kwargs): 'is_mtls_connection_required': 'isMtlsConnectionRequired', 'autonomous_maintenance_schedule_type': 'autonomousMaintenanceScheduleType', 'scheduled_operations': 'scheduledOperations', + 'is_auto_scaling_for_storage_enabled': 'isAutoScalingForStorageEnabled', 'autonomous_database_id': 'autonomousDatabaseId', 'timestamp': 'timestamp', 'clone_type': 'cloneType' @@ -288,6 +294,7 @@ def __init__(self, **kwargs): self._is_mtls_connection_required = None self._autonomous_maintenance_schedule_type = None self._scheduled_operations = None + self._is_auto_scaling_for_storage_enabled = None self._autonomous_database_id = None self._timestamp = None self._clone_type = None diff --git a/src/oci/database/models/create_cross_region_autonomous_database_data_guard_details.py b/src/oci/database/models/create_cross_region_autonomous_database_data_guard_details.py index 5326e27497..2857bf68b5 100644 --- a/src/oci/database/models/create_cross_region_autonomous_database_data_guard_details.py +++ b/src/oci/database/models/create_cross_region_autonomous_database_data_guard_details.py @@ -192,6 +192,10 @@ def __init__(self, **kwargs): The value to assign to the scheduled_operations property of this CreateCrossRegionAutonomousDatabaseDataGuardDetails. :type scheduled_operations: list[oci.database.models.ScheduledOperationDetails] + :param is_auto_scaling_for_storage_enabled: + The value to assign to the is_auto_scaling_for_storage_enabled property of this CreateCrossRegionAutonomousDatabaseDataGuardDetails. + :type is_auto_scaling_for_storage_enabled: bool + :param source_id: The value to assign to the source_id property of this CreateCrossRegionAutonomousDatabaseDataGuardDetails. :type source_id: str @@ -231,6 +235,7 @@ def __init__(self, **kwargs): 'is_mtls_connection_required': 'bool', 'autonomous_maintenance_schedule_type': 'str', 'scheduled_operations': 'list[ScheduledOperationDetails]', + 'is_auto_scaling_for_storage_enabled': 'bool', 'source_id': 'str' } @@ -268,6 +273,7 @@ def __init__(self, **kwargs): 'is_mtls_connection_required': 'isMtlsConnectionRequired', 'autonomous_maintenance_schedule_type': 'autonomousMaintenanceScheduleType', 'scheduled_operations': 'scheduledOperations', + 'is_auto_scaling_for_storage_enabled': 'isAutoScalingForStorageEnabled', 'source_id': 'sourceId' } @@ -304,6 +310,7 @@ def __init__(self, **kwargs): self._is_mtls_connection_required = None self._autonomous_maintenance_schedule_type = None self._scheduled_operations = None + self._is_auto_scaling_for_storage_enabled = None self._source_id = None self._source = 'CROSS_REGION_DATAGUARD' diff --git a/src/oci/database/models/create_exadata_infrastructure_details.py b/src/oci/database/models/create_exadata_infrastructure_details.py index 236b51eed1..158749ad9c 100644 --- a/src/oci/database/models/create_exadata_infrastructure_details.py +++ b/src/oci/database/models/create_exadata_infrastructure_details.py @@ -87,6 +87,10 @@ def __init__(self, **kwargs): The value to assign to the ntp_server property of this CreateExadataInfrastructureDetails. :type ntp_server: list[str] + :param is_cps_offline_report_enabled: + The value to assign to the is_cps_offline_report_enabled property of this CreateExadataInfrastructureDetails. + :type is_cps_offline_report_enabled: bool + :param freeform_tags: The value to assign to the freeform_tags property of this CreateExadataInfrastructureDetails. :type freeform_tags: dict(str, str) @@ -114,6 +118,7 @@ def __init__(self, **kwargs): 'compute_count': 'int', 'dns_server': 'list[str]', 'ntp_server': 'list[str]', + 'is_cps_offline_report_enabled': 'bool', 'freeform_tags': 'dict(str, str)', 'defined_tags': 'dict(str, dict(str, object))' } @@ -136,6 +141,7 @@ def __init__(self, **kwargs): 'compute_count': 'computeCount', 'dns_server': 'dnsServer', 'ntp_server': 'ntpServer', + 'is_cps_offline_report_enabled': 'isCpsOfflineReportEnabled', 'freeform_tags': 'freeformTags', 'defined_tags': 'definedTags' } @@ -157,6 +163,7 @@ def __init__(self, **kwargs): self._compute_count = None self._dns_server = None self._ntp_server = None + self._is_cps_offline_report_enabled = None self._freeform_tags = None self._defined_tags = None @@ -574,6 +581,34 @@ def ntp_server(self, ntp_server): """ self._ntp_server = ntp_server + @property + def is_cps_offline_report_enabled(self): + """ + Gets the is_cps_offline_report_enabled of this CreateExadataInfrastructureDetails. + Indicates whether cps offline diagnostic report is enabled for this Exadata infrastructure. This will allow a customer to quickly check status themselves and fix problems on their end, saving time and frustration + for both Oracle and the customer when they find the CPS in a disconnected state.You can enable offline diagnostic report during Exadata infrastructure provisioning. You can also disable or enable it at any time + using the UpdateExadatainfrastructure API. + + + :return: The is_cps_offline_report_enabled of this CreateExadataInfrastructureDetails. + :rtype: bool + """ + return self._is_cps_offline_report_enabled + + @is_cps_offline_report_enabled.setter + def is_cps_offline_report_enabled(self, is_cps_offline_report_enabled): + """ + Sets the is_cps_offline_report_enabled of this CreateExadataInfrastructureDetails. + Indicates whether cps offline diagnostic report is enabled for this Exadata infrastructure. This will allow a customer to quickly check status themselves and fix problems on their end, saving time and frustration + for both Oracle and the customer when they find the CPS in a disconnected state.You can enable offline diagnostic report during Exadata infrastructure provisioning. You can also disable or enable it at any time + using the UpdateExadatainfrastructure API. + + + :param is_cps_offline_report_enabled: The is_cps_offline_report_enabled of this CreateExadataInfrastructureDetails. + :type: bool + """ + self._is_cps_offline_report_enabled = is_cps_offline_report_enabled + @property def freeform_tags(self): """ diff --git a/src/oci/database/models/create_refreshable_autonomous_database_clone_details.py b/src/oci/database/models/create_refreshable_autonomous_database_clone_details.py index 888c9d5c89..000215d609 100644 --- a/src/oci/database/models/create_refreshable_autonomous_database_clone_details.py +++ b/src/oci/database/models/create_refreshable_autonomous_database_clone_details.py @@ -163,6 +163,10 @@ def __init__(self, **kwargs): The value to assign to the scheduled_operations property of this CreateRefreshableAutonomousDatabaseCloneDetails. :type scheduled_operations: list[oci.database.models.ScheduledOperationDetails] + :param is_auto_scaling_for_storage_enabled: + The value to assign to the is_auto_scaling_for_storage_enabled property of this CreateRefreshableAutonomousDatabaseCloneDetails. + :type is_auto_scaling_for_storage_enabled: bool + :param source_id: The value to assign to the source_id property of this CreateRefreshableAutonomousDatabaseCloneDetails. :type source_id: str @@ -207,6 +211,7 @@ def __init__(self, **kwargs): 'is_mtls_connection_required': 'bool', 'autonomous_maintenance_schedule_type': 'str', 'scheduled_operations': 'list[ScheduledOperationDetails]', + 'is_auto_scaling_for_storage_enabled': 'bool', 'source_id': 'str', 'refreshable_mode': 'str' } @@ -245,6 +250,7 @@ def __init__(self, **kwargs): 'is_mtls_connection_required': 'isMtlsConnectionRequired', 'autonomous_maintenance_schedule_type': 'autonomousMaintenanceScheduleType', 'scheduled_operations': 'scheduledOperations', + 'is_auto_scaling_for_storage_enabled': 'isAutoScalingForStorageEnabled', 'source_id': 'sourceId', 'refreshable_mode': 'refreshableMode' } @@ -282,6 +288,7 @@ def __init__(self, **kwargs): self._is_mtls_connection_required = None self._autonomous_maintenance_schedule_type = None self._scheduled_operations = None + self._is_auto_scaling_for_storage_enabled = None self._source_id = None self._refreshable_mode = None self._source = 'CLONE_TO_REFRESHABLE' diff --git a/src/oci/database/models/db_server.py b/src/oci/database/models/db_server.py index 3b92910435..729710f7d0 100644 --- a/src/oci/database/models/db_server.py +++ b/src/oci/database/models/db_server.py @@ -104,6 +104,10 @@ def __init__(self, **kwargs): The value to assign to the time_created property of this DbServer. :type time_created: datetime + :param db_server_patching_details: + The value to assign to the db_server_patching_details property of this DbServer. + :type db_server_patching_details: oci.database.models.DbServerPatchingDetails + :param freeform_tags: The value to assign to the freeform_tags property of this DbServer. :type freeform_tags: dict(str, str) @@ -129,6 +133,7 @@ def __init__(self, **kwargs): 'max_memory_in_gbs': 'int', 'max_db_node_storage_in_gbs': 'int', 'time_created': 'datetime', + 'db_server_patching_details': 'DbServerPatchingDetails', 'freeform_tags': 'dict(str, str)', 'defined_tags': 'dict(str, dict(str, object))' } @@ -149,6 +154,7 @@ def __init__(self, **kwargs): 'max_memory_in_gbs': 'maxMemoryInGBs', 'max_db_node_storage_in_gbs': 'maxDbNodeStorageInGBs', 'time_created': 'timeCreated', + 'db_server_patching_details': 'dbServerPatchingDetails', 'freeform_tags': 'freeformTags', 'defined_tags': 'definedTags' } @@ -168,6 +174,7 @@ def __init__(self, **kwargs): self._max_memory_in_gbs = None self._max_db_node_storage_in_gbs = None self._time_created = None + self._db_server_patching_details = None self._freeform_tags = None self._defined_tags = None @@ -557,6 +564,26 @@ def time_created(self, time_created): """ self._time_created = time_created + @property + def db_server_patching_details(self): + """ + Gets the db_server_patching_details of this DbServer. + + :return: The db_server_patching_details of this DbServer. + :rtype: oci.database.models.DbServerPatchingDetails + """ + return self._db_server_patching_details + + @db_server_patching_details.setter + def db_server_patching_details(self, db_server_patching_details): + """ + Sets the db_server_patching_details of this DbServer. + + :param db_server_patching_details: The db_server_patching_details of this DbServer. + :type: oci.database.models.DbServerPatchingDetails + """ + self._db_server_patching_details = db_server_patching_details + @property def freeform_tags(self): """ diff --git a/src/oci/database/models/db_server_patching_details.py b/src/oci/database/models/db_server_patching_details.py new file mode 100644 index 0000000000..2ae0c53f49 --- /dev/null +++ b/src/oci/database/models/db_server_patching_details.py @@ -0,0 +1,187 @@ +# coding: utf-8 +# Copyright (c) 2016, 2022, 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. + + +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 DbServerPatchingDetails(object): + """ + The scheduling details for the quarterly maintenance window. Patching and system updates take place during the maintenance window. + """ + + #: A constant which can be used with the patching_status property of a DbServerPatchingDetails. + #: This constant has a value of "SCHEDULED" + PATCHING_STATUS_SCHEDULED = "SCHEDULED" + + #: A constant which can be used with the patching_status property of a DbServerPatchingDetails. + #: This constant has a value of "MAINTENANCE_IN_PROGRESS" + PATCHING_STATUS_MAINTENANCE_IN_PROGRESS = "MAINTENANCE_IN_PROGRESS" + + #: A constant which can be used with the patching_status property of a DbServerPatchingDetails. + #: This constant has a value of "FAILED" + PATCHING_STATUS_FAILED = "FAILED" + + #: A constant which can be used with the patching_status property of a DbServerPatchingDetails. + #: This constant has a value of "COMPLETE" + PATCHING_STATUS_COMPLETE = "COMPLETE" + + def __init__(self, **kwargs): + """ + Initializes a new DbServerPatchingDetails object with values from keyword arguments. + The following keyword arguments are supported (corresponding to the getters/setters of this class): + + :param estimated_patch_duration: + The value to assign to the estimated_patch_duration property of this DbServerPatchingDetails. + :type estimated_patch_duration: int + + :param patching_status: + The value to assign to the patching_status property of this DbServerPatchingDetails. + Allowed values for this property are: "SCHEDULED", "MAINTENANCE_IN_PROGRESS", "FAILED", "COMPLETE", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + :type patching_status: str + + :param time_patching_started: + The value to assign to the time_patching_started property of this DbServerPatchingDetails. + :type time_patching_started: datetime + + :param time_patching_ended: + The value to assign to the time_patching_ended property of this DbServerPatchingDetails. + :type time_patching_ended: datetime + + """ + self.swagger_types = { + 'estimated_patch_duration': 'int', + 'patching_status': 'str', + 'time_patching_started': 'datetime', + 'time_patching_ended': 'datetime' + } + + self.attribute_map = { + 'estimated_patch_duration': 'estimatedPatchDuration', + 'patching_status': 'patchingStatus', + 'time_patching_started': 'timePatchingStarted', + 'time_patching_ended': 'timePatchingEnded' + } + + self._estimated_patch_duration = None + self._patching_status = None + self._time_patching_started = None + self._time_patching_ended = None + + @property + def estimated_patch_duration(self): + """ + Gets the estimated_patch_duration of this DbServerPatchingDetails. + Estimated time, in minutes, to patch one database server. + + + :return: The estimated_patch_duration of this DbServerPatchingDetails. + :rtype: int + """ + return self._estimated_patch_duration + + @estimated_patch_duration.setter + def estimated_patch_duration(self, estimated_patch_duration): + """ + Sets the estimated_patch_duration of this DbServerPatchingDetails. + Estimated time, in minutes, to patch one database server. + + + :param estimated_patch_duration: The estimated_patch_duration of this DbServerPatchingDetails. + :type: int + """ + self._estimated_patch_duration = estimated_patch_duration + + @property + def patching_status(self): + """ + Gets the patching_status of this DbServerPatchingDetails. + The status of the patching operation. + + Allowed values for this property are: "SCHEDULED", "MAINTENANCE_IN_PROGRESS", "FAILED", "COMPLETE", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + + + :return: The patching_status of this DbServerPatchingDetails. + :rtype: str + """ + return self._patching_status + + @patching_status.setter + def patching_status(self, patching_status): + """ + Sets the patching_status of this DbServerPatchingDetails. + The status of the patching operation. + + + :param patching_status: The patching_status of this DbServerPatchingDetails. + :type: str + """ + allowed_values = ["SCHEDULED", "MAINTENANCE_IN_PROGRESS", "FAILED", "COMPLETE"] + if not value_allowed_none_or_none_sentinel(patching_status, allowed_values): + patching_status = 'UNKNOWN_ENUM_VALUE' + self._patching_status = patching_status + + @property + def time_patching_started(self): + """ + Gets the time_patching_started of this DbServerPatchingDetails. + The time when the patching operation started. + + + :return: The time_patching_started of this DbServerPatchingDetails. + :rtype: datetime + """ + return self._time_patching_started + + @time_patching_started.setter + def time_patching_started(self, time_patching_started): + """ + Sets the time_patching_started of this DbServerPatchingDetails. + The time when the patching operation started. + + + :param time_patching_started: The time_patching_started of this DbServerPatchingDetails. + :type: datetime + """ + self._time_patching_started = time_patching_started + + @property + def time_patching_ended(self): + """ + Gets the time_patching_ended of this DbServerPatchingDetails. + The time when the patching operation ended. + + + :return: The time_patching_ended of this DbServerPatchingDetails. + :rtype: datetime + """ + return self._time_patching_ended + + @time_patching_ended.setter + def time_patching_ended(self, time_patching_ended): + """ + Sets the time_patching_ended of this DbServerPatchingDetails. + The time when the patching operation ended. + + + :param time_patching_ended: The time_patching_ended of this DbServerPatchingDetails. + :type: datetime + """ + self._time_patching_ended = time_patching_ended + + 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/db_server_summary.py b/src/oci/database/models/db_server_summary.py index 4ae78f1d32..cabf7e4274 100644 --- a/src/oci/database/models/db_server_summary.py +++ b/src/oci/database/models/db_server_summary.py @@ -104,6 +104,10 @@ def __init__(self, **kwargs): The value to assign to the time_created property of this DbServerSummary. :type time_created: datetime + :param db_server_patching_details: + The value to assign to the db_server_patching_details property of this DbServerSummary. + :type db_server_patching_details: oci.database.models.DbServerPatchingDetails + :param freeform_tags: The value to assign to the freeform_tags property of this DbServerSummary. :type freeform_tags: dict(str, str) @@ -129,6 +133,7 @@ def __init__(self, **kwargs): 'max_memory_in_gbs': 'int', 'max_db_node_storage_in_gbs': 'int', 'time_created': 'datetime', + 'db_server_patching_details': 'DbServerPatchingDetails', 'freeform_tags': 'dict(str, str)', 'defined_tags': 'dict(str, dict(str, object))' } @@ -149,6 +154,7 @@ def __init__(self, **kwargs): 'max_memory_in_gbs': 'maxMemoryInGBs', 'max_db_node_storage_in_gbs': 'maxDbNodeStorageInGBs', 'time_created': 'timeCreated', + 'db_server_patching_details': 'dbServerPatchingDetails', 'freeform_tags': 'freeformTags', 'defined_tags': 'definedTags' } @@ -168,6 +174,7 @@ def __init__(self, **kwargs): self._max_memory_in_gbs = None self._max_db_node_storage_in_gbs = None self._time_created = None + self._db_server_patching_details = None self._freeform_tags = None self._defined_tags = None @@ -557,6 +564,26 @@ def time_created(self, time_created): """ self._time_created = time_created + @property + def db_server_patching_details(self): + """ + Gets the db_server_patching_details of this DbServerSummary. + + :return: The db_server_patching_details of this DbServerSummary. + :rtype: oci.database.models.DbServerPatchingDetails + """ + return self._db_server_patching_details + + @db_server_patching_details.setter + def db_server_patching_details(self, db_server_patching_details): + """ + Sets the db_server_patching_details of this DbServerSummary. + + :param db_server_patching_details: The db_server_patching_details of this DbServerSummary. + :type: oci.database.models.DbServerPatchingDetails + """ + self._db_server_patching_details = db_server_patching_details + @property def freeform_tags(self): """ diff --git a/src/oci/database/models/estimated_patching_time.py b/src/oci/database/models/estimated_patching_time.py new file mode 100644 index 0000000000..c2e618edc3 --- /dev/null +++ b/src/oci/database/models/estimated_patching_time.py @@ -0,0 +1,163 @@ +# coding: utf-8 +# Copyright (c) 2016, 2022, 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. + + +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 EstimatedPatchingTime(object): + """ + The estimated total time required in minutes for all patching operations (database server, storage server, and network switch patching). + """ + + def __init__(self, **kwargs): + """ + Initializes a new EstimatedPatchingTime object with values from keyword arguments. + The following keyword arguments are supported (corresponding to the getters/setters of this class): + + :param total_estimated_patching_time: + The value to assign to the total_estimated_patching_time property of this EstimatedPatchingTime. + :type total_estimated_patching_time: int + + :param estimated_db_server_patching_time: + The value to assign to the estimated_db_server_patching_time property of this EstimatedPatchingTime. + :type estimated_db_server_patching_time: int + + :param estimated_storage_server_patching_time: + The value to assign to the estimated_storage_server_patching_time property of this EstimatedPatchingTime. + :type estimated_storage_server_patching_time: int + + :param estimated_network_switches_patching_time: + The value to assign to the estimated_network_switches_patching_time property of this EstimatedPatchingTime. + :type estimated_network_switches_patching_time: int + + """ + self.swagger_types = { + 'total_estimated_patching_time': 'int', + 'estimated_db_server_patching_time': 'int', + 'estimated_storage_server_patching_time': 'int', + 'estimated_network_switches_patching_time': 'int' + } + + self.attribute_map = { + 'total_estimated_patching_time': 'totalEstimatedPatchingTime', + 'estimated_db_server_patching_time': 'estimatedDbServerPatchingTime', + 'estimated_storage_server_patching_time': 'estimatedStorageServerPatchingTime', + 'estimated_network_switches_patching_time': 'estimatedNetworkSwitchesPatchingTime' + } + + self._total_estimated_patching_time = None + self._estimated_db_server_patching_time = None + self._estimated_storage_server_patching_time = None + self._estimated_network_switches_patching_time = None + + @property + def total_estimated_patching_time(self): + """ + Gets the total_estimated_patching_time of this EstimatedPatchingTime. + The estimated total time required in minutes for all patching operations. + + + :return: The total_estimated_patching_time of this EstimatedPatchingTime. + :rtype: int + """ + return self._total_estimated_patching_time + + @total_estimated_patching_time.setter + def total_estimated_patching_time(self, total_estimated_patching_time): + """ + Sets the total_estimated_patching_time of this EstimatedPatchingTime. + The estimated total time required in minutes for all patching operations. + + + :param total_estimated_patching_time: The total_estimated_patching_time of this EstimatedPatchingTime. + :type: int + """ + self._total_estimated_patching_time = total_estimated_patching_time + + @property + def estimated_db_server_patching_time(self): + """ + Gets the estimated_db_server_patching_time of this EstimatedPatchingTime. + The estimated time required in minutes for database server patching. + + + :return: The estimated_db_server_patching_time of this EstimatedPatchingTime. + :rtype: int + """ + return self._estimated_db_server_patching_time + + @estimated_db_server_patching_time.setter + def estimated_db_server_patching_time(self, estimated_db_server_patching_time): + """ + Sets the estimated_db_server_patching_time of this EstimatedPatchingTime. + The estimated time required in minutes for database server patching. + + + :param estimated_db_server_patching_time: The estimated_db_server_patching_time of this EstimatedPatchingTime. + :type: int + """ + self._estimated_db_server_patching_time = estimated_db_server_patching_time + + @property + def estimated_storage_server_patching_time(self): + """ + Gets the estimated_storage_server_patching_time of this EstimatedPatchingTime. + The estimated time required in minutes for storage server patching. + + + :return: The estimated_storage_server_patching_time of this EstimatedPatchingTime. + :rtype: int + """ + return self._estimated_storage_server_patching_time + + @estimated_storage_server_patching_time.setter + def estimated_storage_server_patching_time(self, estimated_storage_server_patching_time): + """ + Sets the estimated_storage_server_patching_time of this EstimatedPatchingTime. + The estimated time required in minutes for storage server patching. + + + :param estimated_storage_server_patching_time: The estimated_storage_server_patching_time of this EstimatedPatchingTime. + :type: int + """ + self._estimated_storage_server_patching_time = estimated_storage_server_patching_time + + @property + def estimated_network_switches_patching_time(self): + """ + Gets the estimated_network_switches_patching_time of this EstimatedPatchingTime. + The estimated time required in minutes for network switch patching. + + + :return: The estimated_network_switches_patching_time of this EstimatedPatchingTime. + :rtype: int + """ + return self._estimated_network_switches_patching_time + + @estimated_network_switches_patching_time.setter + def estimated_network_switches_patching_time(self, estimated_network_switches_patching_time): + """ + Sets the estimated_network_switches_patching_time of this EstimatedPatchingTime. + The estimated time required in minutes for network switch patching. + + + :param estimated_network_switches_patching_time: The estimated_network_switches_patching_time of this EstimatedPatchingTime. + :type: int + """ + self._estimated_network_switches_patching_time = estimated_network_switches_patching_time + + 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/exadata_infrastructure.py b/src/oci/database/models/exadata_infrastructure.py index 330bd41ed2..4f009db12a 100644 --- a/src/oci/database/models/exadata_infrastructure.py +++ b/src/oci/database/models/exadata_infrastructure.py @@ -206,6 +206,14 @@ def __init__(self, **kwargs): The value to assign to the maintenance_window property of this ExadataInfrastructure. :type maintenance_window: oci.database.models.MaintenanceWindow + :param storage_server_version: + The value to assign to the storage_server_version property of this ExadataInfrastructure. + :type storage_server_version: str + + :param db_server_version: + The value to assign to the db_server_version property of this ExadataInfrastructure. + :type db_server_version: str + :param last_maintenance_run_id: The value to assign to the last_maintenance_run_id property of this ExadataInfrastructure. :type last_maintenance_run_id: str @@ -214,6 +222,10 @@ def __init__(self, **kwargs): The value to assign to the next_maintenance_run_id property of this ExadataInfrastructure. :type next_maintenance_run_id: str + :param is_cps_offline_report_enabled: + The value to assign to the is_cps_offline_report_enabled property of this ExadataInfrastructure. + :type is_cps_offline_report_enabled: bool + :param freeform_tags: The value to assign to the freeform_tags property of this ExadataInfrastructure. :type freeform_tags: dict(str, str) @@ -257,8 +269,11 @@ def __init__(self, **kwargs): 'contacts': 'list[ExadataInfrastructureContact]', 'maintenance_slo_status': 'str', 'maintenance_window': 'MaintenanceWindow', + 'storage_server_version': 'str', + 'db_server_version': 'str', 'last_maintenance_run_id': 'str', 'next_maintenance_run_id': 'str', + 'is_cps_offline_report_enabled': 'bool', 'freeform_tags': 'dict(str, str)', 'defined_tags': 'dict(str, dict(str, object))' } @@ -297,8 +312,11 @@ def __init__(self, **kwargs): 'contacts': 'contacts', 'maintenance_slo_status': 'maintenanceSLOStatus', 'maintenance_window': 'maintenanceWindow', + 'storage_server_version': 'storageServerVersion', + 'db_server_version': 'dbServerVersion', 'last_maintenance_run_id': 'lastMaintenanceRunId', 'next_maintenance_run_id': 'nextMaintenanceRunId', + 'is_cps_offline_report_enabled': 'isCpsOfflineReportEnabled', 'freeform_tags': 'freeformTags', 'defined_tags': 'definedTags' } @@ -336,8 +354,11 @@ def __init__(self, **kwargs): self._contacts = None self._maintenance_slo_status = None self._maintenance_window = None + self._storage_server_version = None + self._db_server_version = None self._last_maintenance_run_id = None self._next_maintenance_run_id = None + self._is_cps_offline_report_enabled = None self._freeform_tags = None self._defined_tags = None @@ -1153,6 +1174,54 @@ def maintenance_window(self, maintenance_window): """ self._maintenance_window = maintenance_window + @property + def storage_server_version(self): + """ + Gets the storage_server_version of this ExadataInfrastructure. + The software version of the storage servers (cells) in the Exadata infrastructure. + + + :return: The storage_server_version of this ExadataInfrastructure. + :rtype: str + """ + return self._storage_server_version + + @storage_server_version.setter + def storage_server_version(self, storage_server_version): + """ + Sets the storage_server_version of this ExadataInfrastructure. + The software version of the storage servers (cells) in the Exadata infrastructure. + + + :param storage_server_version: The storage_server_version of this ExadataInfrastructure. + :type: str + """ + self._storage_server_version = storage_server_version + + @property + def db_server_version(self): + """ + Gets the db_server_version of this ExadataInfrastructure. + The software version of the database servers (dom0) in the Exadata infrastructure. + + + :return: The db_server_version of this ExadataInfrastructure. + :rtype: str + """ + return self._db_server_version + + @db_server_version.setter + def db_server_version(self, db_server_version): + """ + Sets the db_server_version of this ExadataInfrastructure. + The software version of the database servers (dom0) in the Exadata infrastructure. + + + :param db_server_version: The db_server_version of this ExadataInfrastructure. + :type: str + """ + self._db_server_version = db_server_version + @property def last_maintenance_run_id(self): """ @@ -1209,6 +1278,34 @@ def next_maintenance_run_id(self, next_maintenance_run_id): """ self._next_maintenance_run_id = next_maintenance_run_id + @property + def is_cps_offline_report_enabled(self): + """ + Gets the is_cps_offline_report_enabled of this ExadataInfrastructure. + Indicates whether cps offline diagnostic report is enabled for this Exadata infrastructure. This will allow a customer to quickly check status themselves and fix problems on their end, saving time and frustration + for both Oracle and the customer when they find the CPS in a disconnected state.You can enable offline diagnostic report during Exadata infrastructure provisioning. You can also disable or enable it at any time + using the UpdateExadatainfrastructure API. + + + :return: The is_cps_offline_report_enabled of this ExadataInfrastructure. + :rtype: bool + """ + return self._is_cps_offline_report_enabled + + @is_cps_offline_report_enabled.setter + def is_cps_offline_report_enabled(self, is_cps_offline_report_enabled): + """ + Sets the is_cps_offline_report_enabled of this ExadataInfrastructure. + Indicates whether cps offline diagnostic report is enabled for this Exadata infrastructure. This will allow a customer to quickly check status themselves and fix problems on their end, saving time and frustration + for both Oracle and the customer when they find the CPS in a disconnected state.You can enable offline diagnostic report during Exadata infrastructure provisioning. You can also disable or enable it at any time + using the UpdateExadatainfrastructure API. + + + :param is_cps_offline_report_enabled: The is_cps_offline_report_enabled of this ExadataInfrastructure. + :type: bool + """ + self._is_cps_offline_report_enabled = is_cps_offline_report_enabled + @property def freeform_tags(self): """ diff --git a/src/oci/database/models/exadata_infrastructure_summary.py b/src/oci/database/models/exadata_infrastructure_summary.py index dc428ddf05..9e256aa8b2 100644 --- a/src/oci/database/models/exadata_infrastructure_summary.py +++ b/src/oci/database/models/exadata_infrastructure_summary.py @@ -207,6 +207,14 @@ def __init__(self, **kwargs): The value to assign to the maintenance_window property of this ExadataInfrastructureSummary. :type maintenance_window: oci.database.models.MaintenanceWindow + :param storage_server_version: + The value to assign to the storage_server_version property of this ExadataInfrastructureSummary. + :type storage_server_version: str + + :param db_server_version: + The value to assign to the db_server_version property of this ExadataInfrastructureSummary. + :type db_server_version: str + :param last_maintenance_run_id: The value to assign to the last_maintenance_run_id property of this ExadataInfrastructureSummary. :type last_maintenance_run_id: str @@ -215,6 +223,10 @@ def __init__(self, **kwargs): The value to assign to the next_maintenance_run_id property of this ExadataInfrastructureSummary. :type next_maintenance_run_id: str + :param is_cps_offline_report_enabled: + The value to assign to the is_cps_offline_report_enabled property of this ExadataInfrastructureSummary. + :type is_cps_offline_report_enabled: bool + :param freeform_tags: The value to assign to the freeform_tags property of this ExadataInfrastructureSummary. :type freeform_tags: dict(str, str) @@ -258,8 +270,11 @@ def __init__(self, **kwargs): 'contacts': 'list[ExadataInfrastructureContact]', 'maintenance_slo_status': 'str', 'maintenance_window': 'MaintenanceWindow', + 'storage_server_version': 'str', + 'db_server_version': 'str', 'last_maintenance_run_id': 'str', 'next_maintenance_run_id': 'str', + 'is_cps_offline_report_enabled': 'bool', 'freeform_tags': 'dict(str, str)', 'defined_tags': 'dict(str, dict(str, object))' } @@ -298,8 +313,11 @@ def __init__(self, **kwargs): 'contacts': 'contacts', 'maintenance_slo_status': 'maintenanceSLOStatus', 'maintenance_window': 'maintenanceWindow', + 'storage_server_version': 'storageServerVersion', + 'db_server_version': 'dbServerVersion', 'last_maintenance_run_id': 'lastMaintenanceRunId', 'next_maintenance_run_id': 'nextMaintenanceRunId', + 'is_cps_offline_report_enabled': 'isCpsOfflineReportEnabled', 'freeform_tags': 'freeformTags', 'defined_tags': 'definedTags' } @@ -337,8 +355,11 @@ def __init__(self, **kwargs): self._contacts = None self._maintenance_slo_status = None self._maintenance_window = None + self._storage_server_version = None + self._db_server_version = None self._last_maintenance_run_id = None self._next_maintenance_run_id = None + self._is_cps_offline_report_enabled = None self._freeform_tags = None self._defined_tags = None @@ -1154,6 +1175,54 @@ def maintenance_window(self, maintenance_window): """ self._maintenance_window = maintenance_window + @property + def storage_server_version(self): + """ + Gets the storage_server_version of this ExadataInfrastructureSummary. + The software version of the storage servers (cells) in the Exadata infrastructure. + + + :return: The storage_server_version of this ExadataInfrastructureSummary. + :rtype: str + """ + return self._storage_server_version + + @storage_server_version.setter + def storage_server_version(self, storage_server_version): + """ + Sets the storage_server_version of this ExadataInfrastructureSummary. + The software version of the storage servers (cells) in the Exadata infrastructure. + + + :param storage_server_version: The storage_server_version of this ExadataInfrastructureSummary. + :type: str + """ + self._storage_server_version = storage_server_version + + @property + def db_server_version(self): + """ + Gets the db_server_version of this ExadataInfrastructureSummary. + The software version of the database servers (dom0) in the Exadata infrastructure. + + + :return: The db_server_version of this ExadataInfrastructureSummary. + :rtype: str + """ + return self._db_server_version + + @db_server_version.setter + def db_server_version(self, db_server_version): + """ + Sets the db_server_version of this ExadataInfrastructureSummary. + The software version of the database servers (dom0) in the Exadata infrastructure. + + + :param db_server_version: The db_server_version of this ExadataInfrastructureSummary. + :type: str + """ + self._db_server_version = db_server_version + @property def last_maintenance_run_id(self): """ @@ -1210,6 +1279,34 @@ def next_maintenance_run_id(self, next_maintenance_run_id): """ self._next_maintenance_run_id = next_maintenance_run_id + @property + def is_cps_offline_report_enabled(self): + """ + Gets the is_cps_offline_report_enabled of this ExadataInfrastructureSummary. + Indicates whether cps offline diagnostic report is enabled for this Exadata infrastructure. This will allow a customer to quickly check status themselves and fix problems on their end, saving time and frustration + for both Oracle and the customer when they find the CPS in a disconnected state.You can enable offline diagnostic report during Exadata infrastructure provisioning. You can also disable or enable it at any time + using the UpdateExadatainfrastructure API. + + + :return: The is_cps_offline_report_enabled of this ExadataInfrastructureSummary. + :rtype: bool + """ + return self._is_cps_offline_report_enabled + + @is_cps_offline_report_enabled.setter + def is_cps_offline_report_enabled(self, is_cps_offline_report_enabled): + """ + Sets the is_cps_offline_report_enabled of this ExadataInfrastructureSummary. + Indicates whether cps offline diagnostic report is enabled for this Exadata infrastructure. This will allow a customer to quickly check status themselves and fix problems on their end, saving time and frustration + for both Oracle and the customer when they find the CPS in a disconnected state.You can enable offline diagnostic report during Exadata infrastructure provisioning. You can also disable or enable it at any time + using the UpdateExadatainfrastructure API. + + + :param is_cps_offline_report_enabled: The is_cps_offline_report_enabled of this ExadataInfrastructureSummary. + :type: bool + """ + self._is_cps_offline_report_enabled = is_cps_offline_report_enabled + @property def freeform_tags(self): """ diff --git a/src/oci/database/models/maintenance_run.py b/src/oci/database/models/maintenance_run.py index ceb47b4536..86e80ecce3 100644 --- a/src/oci/database/models/maintenance_run.py +++ b/src/oci/database/models/maintenance_run.py @@ -113,6 +113,18 @@ class MaintenanceRun(object): #: This constant has a value of "NONROLLING" PATCHING_MODE_NONROLLING = "NONROLLING" + #: A constant which can be used with the patching_status property of a MaintenanceRun. + #: This constant has a value of "PATCHING" + PATCHING_STATUS_PATCHING = "PATCHING" + + #: A constant which can be used with the patching_status property of a MaintenanceRun. + #: This constant has a value of "WAITING" + PATCHING_STATUS_WAITING = "WAITING" + + #: A constant which can be used with the patching_status property of a MaintenanceRun. + #: This constant has a value of "SCHEDULED" + PATCHING_STATUS_SCHEDULED = "SCHEDULED" + def __init__(self, **kwargs): """ Initializes a new MaintenanceRun object with values from keyword arguments. @@ -196,6 +208,52 @@ def __init__(self, **kwargs): The value to assign to the patch_failure_count property of this MaintenanceRun. :type patch_failure_count: int + :param target_db_server_version: + The value to assign to the target_db_server_version property of this MaintenanceRun. + :type target_db_server_version: str + + :param target_storage_server_version: + The value to assign to the target_storage_server_version property of this MaintenanceRun. + :type target_storage_server_version: str + + :param is_custom_action_timeout_enabled: + The value to assign to the is_custom_action_timeout_enabled property of this MaintenanceRun. + :type is_custom_action_timeout_enabled: bool + + :param custom_action_timeout_in_mins: + The value to assign to the custom_action_timeout_in_mins property of this MaintenanceRun. + :type custom_action_timeout_in_mins: int + + :param current_custom_action_timeout_in_mins: + The value to assign to the current_custom_action_timeout_in_mins property of this MaintenanceRun. + :type current_custom_action_timeout_in_mins: int + + :param patching_status: + The value to assign to the patching_status property of this MaintenanceRun. + Allowed values for this property are: "PATCHING", "WAITING", "SCHEDULED", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + :type patching_status: str + + :param patching_start_time: + The value to assign to the patching_start_time property of this MaintenanceRun. + :type patching_start_time: datetime + + :param patching_end_time: + The value to assign to the patching_end_time property of this MaintenanceRun. + :type patching_end_time: datetime + + :param estimated_patching_time: + The value to assign to the estimated_patching_time property of this MaintenanceRun. + :type estimated_patching_time: oci.database.models.EstimatedPatchingTime + + :param current_patching_component: + The value to assign to the current_patching_component property of this MaintenanceRun. + :type current_patching_component: str + + :param estimated_component_patching_start_time: + The value to assign to the estimated_component_patching_start_time property of this MaintenanceRun. + :type estimated_component_patching_start_time: datetime + """ self.swagger_types = { 'id': 'str', @@ -214,7 +272,18 @@ def __init__(self, **kwargs): 'maintenance_subtype': 'str', 'peer_maintenance_run_id': 'str', 'patching_mode': 'str', - 'patch_failure_count': 'int' + 'patch_failure_count': 'int', + 'target_db_server_version': 'str', + 'target_storage_server_version': 'str', + 'is_custom_action_timeout_enabled': 'bool', + 'custom_action_timeout_in_mins': 'int', + 'current_custom_action_timeout_in_mins': 'int', + 'patching_status': 'str', + 'patching_start_time': 'datetime', + 'patching_end_time': 'datetime', + 'estimated_patching_time': 'EstimatedPatchingTime', + 'current_patching_component': 'str', + 'estimated_component_patching_start_time': 'datetime' } self.attribute_map = { @@ -234,7 +303,18 @@ def __init__(self, **kwargs): 'maintenance_subtype': 'maintenanceSubtype', 'peer_maintenance_run_id': 'peerMaintenanceRunId', 'patching_mode': 'patchingMode', - 'patch_failure_count': 'patchFailureCount' + 'patch_failure_count': 'patchFailureCount', + 'target_db_server_version': 'targetDbServerVersion', + 'target_storage_server_version': 'targetStorageServerVersion', + 'is_custom_action_timeout_enabled': 'isCustomActionTimeoutEnabled', + 'custom_action_timeout_in_mins': 'customActionTimeoutInMins', + 'current_custom_action_timeout_in_mins': 'currentCustomActionTimeoutInMins', + 'patching_status': 'patchingStatus', + 'patching_start_time': 'patchingStartTime', + 'patching_end_time': 'patchingEndTime', + 'estimated_patching_time': 'estimatedPatchingTime', + 'current_patching_component': 'currentPatchingComponent', + 'estimated_component_patching_start_time': 'estimatedComponentPatchingStartTime' } self._id = None @@ -254,6 +334,17 @@ def __init__(self, **kwargs): self._peer_maintenance_run_id = None self._patching_mode = None self._patch_failure_count = None + self._target_db_server_version = None + self._target_storage_server_version = None + self._is_custom_action_timeout_enabled = None + self._custom_action_timeout_in_mins = None + self._current_custom_action_timeout_in_mins = None + self._patching_status = None + self._patching_start_time = None + self._patching_end_time = None + self._estimated_patching_time = None + self._current_patching_component = None + self._estimated_component_patching_start_time = None @property def id(self): @@ -705,6 +796,274 @@ def patch_failure_count(self, patch_failure_count): """ self._patch_failure_count = patch_failure_count + @property + def target_db_server_version(self): + """ + Gets the target_db_server_version of this MaintenanceRun. + The target software version for the database server patching operation. + + + :return: The target_db_server_version of this MaintenanceRun. + :rtype: str + """ + return self._target_db_server_version + + @target_db_server_version.setter + def target_db_server_version(self, target_db_server_version): + """ + Sets the target_db_server_version of this MaintenanceRun. + The target software version for the database server patching operation. + + + :param target_db_server_version: The target_db_server_version of this MaintenanceRun. + :type: str + """ + self._target_db_server_version = target_db_server_version + + @property + def target_storage_server_version(self): + """ + Gets the target_storage_server_version of this MaintenanceRun. + The target Cell version that is to be patched to. + + + :return: The target_storage_server_version of this MaintenanceRun. + :rtype: str + """ + return self._target_storage_server_version + + @target_storage_server_version.setter + def target_storage_server_version(self, target_storage_server_version): + """ + Sets the target_storage_server_version of this MaintenanceRun. + The target Cell version that is to be patched to. + + + :param target_storage_server_version: The target_storage_server_version of this MaintenanceRun. + :type: str + """ + self._target_storage_server_version = target_storage_server_version + + @property + def is_custom_action_timeout_enabled(self): + """ + Gets the is_custom_action_timeout_enabled of this MaintenanceRun. + If true, enables the configuration of a custom action timeout (waiting period) between database servers patching operations. + + + :return: The is_custom_action_timeout_enabled of this MaintenanceRun. + :rtype: bool + """ + return self._is_custom_action_timeout_enabled + + @is_custom_action_timeout_enabled.setter + def is_custom_action_timeout_enabled(self, is_custom_action_timeout_enabled): + """ + Sets the is_custom_action_timeout_enabled of this MaintenanceRun. + If true, enables the configuration of a custom action timeout (waiting period) between database servers patching operations. + + + :param is_custom_action_timeout_enabled: The is_custom_action_timeout_enabled of this MaintenanceRun. + :type: bool + """ + self._is_custom_action_timeout_enabled = is_custom_action_timeout_enabled + + @property + def custom_action_timeout_in_mins(self): + """ + Gets the custom_action_timeout_in_mins of this MaintenanceRun. + Determines the amount of time the system will wait before the start of each database server patching operation. + Specify a number of minutes, from 15 to 120. + + + :return: The custom_action_timeout_in_mins of this MaintenanceRun. + :rtype: int + """ + return self._custom_action_timeout_in_mins + + @custom_action_timeout_in_mins.setter + def custom_action_timeout_in_mins(self, custom_action_timeout_in_mins): + """ + Sets the custom_action_timeout_in_mins of this MaintenanceRun. + Determines the amount of time the system will wait before the start of each database server patching operation. + Specify a number of minutes, from 15 to 120. + + + :param custom_action_timeout_in_mins: The custom_action_timeout_in_mins of this MaintenanceRun. + :type: int + """ + self._custom_action_timeout_in_mins = custom_action_timeout_in_mins + + @property + def current_custom_action_timeout_in_mins(self): + """ + Gets the current_custom_action_timeout_in_mins of this MaintenanceRun. + Extend current custom action timeout between the current database servers during waiting state, from 0 (zero) to 30 minutes. + + + :return: The current_custom_action_timeout_in_mins of this MaintenanceRun. + :rtype: int + """ + return self._current_custom_action_timeout_in_mins + + @current_custom_action_timeout_in_mins.setter + def current_custom_action_timeout_in_mins(self, current_custom_action_timeout_in_mins): + """ + Sets the current_custom_action_timeout_in_mins of this MaintenanceRun. + Extend current custom action timeout between the current database servers during waiting state, from 0 (zero) to 30 minutes. + + + :param current_custom_action_timeout_in_mins: The current_custom_action_timeout_in_mins of this MaintenanceRun. + :type: int + """ + self._current_custom_action_timeout_in_mins = current_custom_action_timeout_in_mins + + @property + def patching_status(self): + """ + Gets the patching_status of this MaintenanceRun. + The status of the patching operation. + + Allowed values for this property are: "PATCHING", "WAITING", "SCHEDULED", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + + + :return: The patching_status of this MaintenanceRun. + :rtype: str + """ + return self._patching_status + + @patching_status.setter + def patching_status(self, patching_status): + """ + Sets the patching_status of this MaintenanceRun. + The status of the patching operation. + + + :param patching_status: The patching_status of this MaintenanceRun. + :type: str + """ + allowed_values = ["PATCHING", "WAITING", "SCHEDULED"] + if not value_allowed_none_or_none_sentinel(patching_status, allowed_values): + patching_status = 'UNKNOWN_ENUM_VALUE' + self._patching_status = patching_status + + @property + def patching_start_time(self): + """ + Gets the patching_start_time of this MaintenanceRun. + The time when the patching operation started. + + + :return: The patching_start_time of this MaintenanceRun. + :rtype: datetime + """ + return self._patching_start_time + + @patching_start_time.setter + def patching_start_time(self, patching_start_time): + """ + Sets the patching_start_time of this MaintenanceRun. + The time when the patching operation started. + + + :param patching_start_time: The patching_start_time of this MaintenanceRun. + :type: datetime + """ + self._patching_start_time = patching_start_time + + @property + def patching_end_time(self): + """ + Gets the patching_end_time of this MaintenanceRun. + The time when the patching operation ended. + + + :return: The patching_end_time of this MaintenanceRun. + :rtype: datetime + """ + return self._patching_end_time + + @patching_end_time.setter + def patching_end_time(self, patching_end_time): + """ + Sets the patching_end_time of this MaintenanceRun. + The time when the patching operation ended. + + + :param patching_end_time: The patching_end_time of this MaintenanceRun. + :type: datetime + """ + self._patching_end_time = patching_end_time + + @property + def estimated_patching_time(self): + """ + Gets the estimated_patching_time of this MaintenanceRun. + + :return: The estimated_patching_time of this MaintenanceRun. + :rtype: oci.database.models.EstimatedPatchingTime + """ + return self._estimated_patching_time + + @estimated_patching_time.setter + def estimated_patching_time(self, estimated_patching_time): + """ + Sets the estimated_patching_time of this MaintenanceRun. + + :param estimated_patching_time: The estimated_patching_time of this MaintenanceRun. + :type: oci.database.models.EstimatedPatchingTime + """ + self._estimated_patching_time = estimated_patching_time + + @property + def current_patching_component(self): + """ + Gets the current_patching_component of this MaintenanceRun. + The name of the current infrastruture component that is getting patched. + + + :return: The current_patching_component of this MaintenanceRun. + :rtype: str + """ + return self._current_patching_component + + @current_patching_component.setter + def current_patching_component(self, current_patching_component): + """ + Sets the current_patching_component of this MaintenanceRun. + The name of the current infrastruture component that is getting patched. + + + :param current_patching_component: The current_patching_component of this MaintenanceRun. + :type: str + """ + self._current_patching_component = current_patching_component + + @property + def estimated_component_patching_start_time(self): + """ + Gets the estimated_component_patching_start_time of this MaintenanceRun. + The estimated start time of the next infrastruture component patching operation. + + + :return: The estimated_component_patching_start_time of this MaintenanceRun. + :rtype: datetime + """ + return self._estimated_component_patching_start_time + + @estimated_component_patching_start_time.setter + def estimated_component_patching_start_time(self, estimated_component_patching_start_time): + """ + Sets the estimated_component_patching_start_time of this MaintenanceRun. + The estimated start time of the next infrastruture component patching operation. + + + :param estimated_component_patching_start_time: The estimated_component_patching_start_time of this MaintenanceRun. + :type: datetime + """ + self._estimated_component_patching_start_time = estimated_component_patching_start_time + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/database/models/maintenance_run_summary.py b/src/oci/database/models/maintenance_run_summary.py index 27fc5d7dac..a95b341124 100644 --- a/src/oci/database/models/maintenance_run_summary.py +++ b/src/oci/database/models/maintenance_run_summary.py @@ -113,6 +113,18 @@ class MaintenanceRunSummary(object): #: This constant has a value of "NONROLLING" PATCHING_MODE_NONROLLING = "NONROLLING" + #: A constant which can be used with the patching_status property of a MaintenanceRunSummary. + #: This constant has a value of "PATCHING" + PATCHING_STATUS_PATCHING = "PATCHING" + + #: A constant which can be used with the patching_status property of a MaintenanceRunSummary. + #: This constant has a value of "WAITING" + PATCHING_STATUS_WAITING = "WAITING" + + #: A constant which can be used with the patching_status property of a MaintenanceRunSummary. + #: This constant has a value of "SCHEDULED" + PATCHING_STATUS_SCHEDULED = "SCHEDULED" + def __init__(self, **kwargs): """ Initializes a new MaintenanceRunSummary object with values from keyword arguments. @@ -196,6 +208,52 @@ def __init__(self, **kwargs): The value to assign to the patch_failure_count property of this MaintenanceRunSummary. :type patch_failure_count: int + :param target_db_server_version: + The value to assign to the target_db_server_version property of this MaintenanceRunSummary. + :type target_db_server_version: str + + :param target_storage_server_version: + The value to assign to the target_storage_server_version property of this MaintenanceRunSummary. + :type target_storage_server_version: str + + :param is_custom_action_timeout_enabled: + The value to assign to the is_custom_action_timeout_enabled property of this MaintenanceRunSummary. + :type is_custom_action_timeout_enabled: bool + + :param custom_action_timeout_in_mins: + The value to assign to the custom_action_timeout_in_mins property of this MaintenanceRunSummary. + :type custom_action_timeout_in_mins: int + + :param current_custom_action_timeout_in_mins: + The value to assign to the current_custom_action_timeout_in_mins property of this MaintenanceRunSummary. + :type current_custom_action_timeout_in_mins: int + + :param patching_status: + The value to assign to the patching_status property of this MaintenanceRunSummary. + Allowed values for this property are: "PATCHING", "WAITING", "SCHEDULED", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + :type patching_status: str + + :param patching_start_time: + The value to assign to the patching_start_time property of this MaintenanceRunSummary. + :type patching_start_time: datetime + + :param patching_end_time: + The value to assign to the patching_end_time property of this MaintenanceRunSummary. + :type patching_end_time: datetime + + :param estimated_patching_time: + The value to assign to the estimated_patching_time property of this MaintenanceRunSummary. + :type estimated_patching_time: oci.database.models.EstimatedPatchingTime + + :param current_patching_component: + The value to assign to the current_patching_component property of this MaintenanceRunSummary. + :type current_patching_component: str + + :param estimated_component_patching_start_time: + The value to assign to the estimated_component_patching_start_time property of this MaintenanceRunSummary. + :type estimated_component_patching_start_time: datetime + """ self.swagger_types = { 'id': 'str', @@ -214,7 +272,18 @@ def __init__(self, **kwargs): 'maintenance_subtype': 'str', 'peer_maintenance_run_id': 'str', 'patching_mode': 'str', - 'patch_failure_count': 'int' + 'patch_failure_count': 'int', + 'target_db_server_version': 'str', + 'target_storage_server_version': 'str', + 'is_custom_action_timeout_enabled': 'bool', + 'custom_action_timeout_in_mins': 'int', + 'current_custom_action_timeout_in_mins': 'int', + 'patching_status': 'str', + 'patching_start_time': 'datetime', + 'patching_end_time': 'datetime', + 'estimated_patching_time': 'EstimatedPatchingTime', + 'current_patching_component': 'str', + 'estimated_component_patching_start_time': 'datetime' } self.attribute_map = { @@ -234,7 +303,18 @@ def __init__(self, **kwargs): 'maintenance_subtype': 'maintenanceSubtype', 'peer_maintenance_run_id': 'peerMaintenanceRunId', 'patching_mode': 'patchingMode', - 'patch_failure_count': 'patchFailureCount' + 'patch_failure_count': 'patchFailureCount', + 'target_db_server_version': 'targetDbServerVersion', + 'target_storage_server_version': 'targetStorageServerVersion', + 'is_custom_action_timeout_enabled': 'isCustomActionTimeoutEnabled', + 'custom_action_timeout_in_mins': 'customActionTimeoutInMins', + 'current_custom_action_timeout_in_mins': 'currentCustomActionTimeoutInMins', + 'patching_status': 'patchingStatus', + 'patching_start_time': 'patchingStartTime', + 'patching_end_time': 'patchingEndTime', + 'estimated_patching_time': 'estimatedPatchingTime', + 'current_patching_component': 'currentPatchingComponent', + 'estimated_component_patching_start_time': 'estimatedComponentPatchingStartTime' } self._id = None @@ -254,6 +334,17 @@ def __init__(self, **kwargs): self._peer_maintenance_run_id = None self._patching_mode = None self._patch_failure_count = None + self._target_db_server_version = None + self._target_storage_server_version = None + self._is_custom_action_timeout_enabled = None + self._custom_action_timeout_in_mins = None + self._current_custom_action_timeout_in_mins = None + self._patching_status = None + self._patching_start_time = None + self._patching_end_time = None + self._estimated_patching_time = None + self._current_patching_component = None + self._estimated_component_patching_start_time = None @property def id(self): @@ -705,6 +796,274 @@ def patch_failure_count(self, patch_failure_count): """ self._patch_failure_count = patch_failure_count + @property + def target_db_server_version(self): + """ + Gets the target_db_server_version of this MaintenanceRunSummary. + The target software version for the database server patching operation. + + + :return: The target_db_server_version of this MaintenanceRunSummary. + :rtype: str + """ + return self._target_db_server_version + + @target_db_server_version.setter + def target_db_server_version(self, target_db_server_version): + """ + Sets the target_db_server_version of this MaintenanceRunSummary. + The target software version for the database server patching operation. + + + :param target_db_server_version: The target_db_server_version of this MaintenanceRunSummary. + :type: str + """ + self._target_db_server_version = target_db_server_version + + @property + def target_storage_server_version(self): + """ + Gets the target_storage_server_version of this MaintenanceRunSummary. + The target Cell version that is to be patched to. + + + :return: The target_storage_server_version of this MaintenanceRunSummary. + :rtype: str + """ + return self._target_storage_server_version + + @target_storage_server_version.setter + def target_storage_server_version(self, target_storage_server_version): + """ + Sets the target_storage_server_version of this MaintenanceRunSummary. + The target Cell version that is to be patched to. + + + :param target_storage_server_version: The target_storage_server_version of this MaintenanceRunSummary. + :type: str + """ + self._target_storage_server_version = target_storage_server_version + + @property + def is_custom_action_timeout_enabled(self): + """ + Gets the is_custom_action_timeout_enabled of this MaintenanceRunSummary. + If true, enables the configuration of a custom action timeout (waiting period) between database servers patching operations. + + + :return: The is_custom_action_timeout_enabled of this MaintenanceRunSummary. + :rtype: bool + """ + return self._is_custom_action_timeout_enabled + + @is_custom_action_timeout_enabled.setter + def is_custom_action_timeout_enabled(self, is_custom_action_timeout_enabled): + """ + Sets the is_custom_action_timeout_enabled of this MaintenanceRunSummary. + If true, enables the configuration of a custom action timeout (waiting period) between database servers patching operations. + + + :param is_custom_action_timeout_enabled: The is_custom_action_timeout_enabled of this MaintenanceRunSummary. + :type: bool + """ + self._is_custom_action_timeout_enabled = is_custom_action_timeout_enabled + + @property + def custom_action_timeout_in_mins(self): + """ + Gets the custom_action_timeout_in_mins of this MaintenanceRunSummary. + Determines the amount of time the system will wait before the start of each database server patching operation. + Specify a number of minutes, from 15 to 120. + + + :return: The custom_action_timeout_in_mins of this MaintenanceRunSummary. + :rtype: int + """ + return self._custom_action_timeout_in_mins + + @custom_action_timeout_in_mins.setter + def custom_action_timeout_in_mins(self, custom_action_timeout_in_mins): + """ + Sets the custom_action_timeout_in_mins of this MaintenanceRunSummary. + Determines the amount of time the system will wait before the start of each database server patching operation. + Specify a number of minutes, from 15 to 120. + + + :param custom_action_timeout_in_mins: The custom_action_timeout_in_mins of this MaintenanceRunSummary. + :type: int + """ + self._custom_action_timeout_in_mins = custom_action_timeout_in_mins + + @property + def current_custom_action_timeout_in_mins(self): + """ + Gets the current_custom_action_timeout_in_mins of this MaintenanceRunSummary. + Extend current custom action timeout between the current database servers during waiting state, from 0 (zero) to 30 minutes. + + + :return: The current_custom_action_timeout_in_mins of this MaintenanceRunSummary. + :rtype: int + """ + return self._current_custom_action_timeout_in_mins + + @current_custom_action_timeout_in_mins.setter + def current_custom_action_timeout_in_mins(self, current_custom_action_timeout_in_mins): + """ + Sets the current_custom_action_timeout_in_mins of this MaintenanceRunSummary. + Extend current custom action timeout between the current database servers during waiting state, from 0 (zero) to 30 minutes. + + + :param current_custom_action_timeout_in_mins: The current_custom_action_timeout_in_mins of this MaintenanceRunSummary. + :type: int + """ + self._current_custom_action_timeout_in_mins = current_custom_action_timeout_in_mins + + @property + def patching_status(self): + """ + Gets the patching_status of this MaintenanceRunSummary. + The status of the patching operation. + + Allowed values for this property are: "PATCHING", "WAITING", "SCHEDULED", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + + + :return: The patching_status of this MaintenanceRunSummary. + :rtype: str + """ + return self._patching_status + + @patching_status.setter + def patching_status(self, patching_status): + """ + Sets the patching_status of this MaintenanceRunSummary. + The status of the patching operation. + + + :param patching_status: The patching_status of this MaintenanceRunSummary. + :type: str + """ + allowed_values = ["PATCHING", "WAITING", "SCHEDULED"] + if not value_allowed_none_or_none_sentinel(patching_status, allowed_values): + patching_status = 'UNKNOWN_ENUM_VALUE' + self._patching_status = patching_status + + @property + def patching_start_time(self): + """ + Gets the patching_start_time of this MaintenanceRunSummary. + The time when the patching operation started. + + + :return: The patching_start_time of this MaintenanceRunSummary. + :rtype: datetime + """ + return self._patching_start_time + + @patching_start_time.setter + def patching_start_time(self, patching_start_time): + """ + Sets the patching_start_time of this MaintenanceRunSummary. + The time when the patching operation started. + + + :param patching_start_time: The patching_start_time of this MaintenanceRunSummary. + :type: datetime + """ + self._patching_start_time = patching_start_time + + @property + def patching_end_time(self): + """ + Gets the patching_end_time of this MaintenanceRunSummary. + The time when the patching operation ended. + + + :return: The patching_end_time of this MaintenanceRunSummary. + :rtype: datetime + """ + return self._patching_end_time + + @patching_end_time.setter + def patching_end_time(self, patching_end_time): + """ + Sets the patching_end_time of this MaintenanceRunSummary. + The time when the patching operation ended. + + + :param patching_end_time: The patching_end_time of this MaintenanceRunSummary. + :type: datetime + """ + self._patching_end_time = patching_end_time + + @property + def estimated_patching_time(self): + """ + Gets the estimated_patching_time of this MaintenanceRunSummary. + + :return: The estimated_patching_time of this MaintenanceRunSummary. + :rtype: oci.database.models.EstimatedPatchingTime + """ + return self._estimated_patching_time + + @estimated_patching_time.setter + def estimated_patching_time(self, estimated_patching_time): + """ + Sets the estimated_patching_time of this MaintenanceRunSummary. + + :param estimated_patching_time: The estimated_patching_time of this MaintenanceRunSummary. + :type: oci.database.models.EstimatedPatchingTime + """ + self._estimated_patching_time = estimated_patching_time + + @property + def current_patching_component(self): + """ + Gets the current_patching_component of this MaintenanceRunSummary. + The name of the current infrastruture component that is getting patched. + + + :return: The current_patching_component of this MaintenanceRunSummary. + :rtype: str + """ + return self._current_patching_component + + @current_patching_component.setter + def current_patching_component(self, current_patching_component): + """ + Sets the current_patching_component of this MaintenanceRunSummary. + The name of the current infrastruture component that is getting patched. + + + :param current_patching_component: The current_patching_component of this MaintenanceRunSummary. + :type: str + """ + self._current_patching_component = current_patching_component + + @property + def estimated_component_patching_start_time(self): + """ + Gets the estimated_component_patching_start_time of this MaintenanceRunSummary. + The estimated start time of the next infrastruture component patching operation. + + + :return: The estimated_component_patching_start_time of this MaintenanceRunSummary. + :rtype: datetime + """ + return self._estimated_component_patching_start_time + + @estimated_component_patching_start_time.setter + def estimated_component_patching_start_time(self, estimated_component_patching_start_time): + """ + Sets the estimated_component_patching_start_time of this MaintenanceRunSummary. + The estimated start time of the next infrastruture component patching operation. + + + :param estimated_component_patching_start_time: The estimated_component_patching_start_time of this MaintenanceRunSummary. + :type: datetime + """ + self._estimated_component_patching_start_time = estimated_component_patching_start_time + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/database/models/maintenance_window.py b/src/oci/database/models/maintenance_window.py index ae147957a9..beb74a67ea 100644 --- a/src/oci/database/models/maintenance_window.py +++ b/src/oci/database/models/maintenance_window.py @@ -21,6 +21,14 @@ class MaintenanceWindow(object): #: This constant has a value of "CUSTOM_PREFERENCE" PREFERENCE_CUSTOM_PREFERENCE = "CUSTOM_PREFERENCE" + #: A constant which can be used with the patching_mode property of a MaintenanceWindow. + #: This constant has a value of "ROLLING" + PATCHING_MODE_ROLLING = "ROLLING" + + #: A constant which can be used with the patching_mode property of a MaintenanceWindow. + #: This constant has a value of "NONROLLING" + PATCHING_MODE_NONROLLING = "NONROLLING" + def __init__(self, **kwargs): """ Initializes a new MaintenanceWindow object with values from keyword arguments. @@ -32,6 +40,20 @@ def __init__(self, **kwargs): Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. :type preference: str + :param patching_mode: + The value to assign to the patching_mode property of this MaintenanceWindow. + Allowed values for this property are: "ROLLING", "NONROLLING", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + :type patching_mode: str + + :param is_custom_action_timeout_enabled: + The value to assign to the is_custom_action_timeout_enabled property of this MaintenanceWindow. + :type is_custom_action_timeout_enabled: bool + + :param custom_action_timeout_in_mins: + The value to assign to the custom_action_timeout_in_mins property of this MaintenanceWindow. + :type custom_action_timeout_in_mins: int + :param months: The value to assign to the months property of this MaintenanceWindow. :type months: list[oci.database.models.Month] @@ -55,6 +77,9 @@ def __init__(self, **kwargs): """ self.swagger_types = { 'preference': 'str', + 'patching_mode': 'str', + 'is_custom_action_timeout_enabled': 'bool', + 'custom_action_timeout_in_mins': 'int', 'months': 'list[Month]', 'weeks_of_month': 'list[int]', 'days_of_week': 'list[DayOfWeek]', @@ -64,6 +89,9 @@ def __init__(self, **kwargs): self.attribute_map = { 'preference': 'preference', + 'patching_mode': 'patchingMode', + 'is_custom_action_timeout_enabled': 'isCustomActionTimeoutEnabled', + 'custom_action_timeout_in_mins': 'customActionTimeoutInMins', 'months': 'months', 'weeks_of_month': 'weeksOfMonth', 'days_of_week': 'daysOfWeek', @@ -72,6 +100,9 @@ def __init__(self, **kwargs): } self._preference = None + self._patching_mode = None + self._is_custom_action_timeout_enabled = None + self._custom_action_timeout_in_mins = None self._months = None self._weeks_of_month = None self._days_of_week = None @@ -108,6 +139,94 @@ def preference(self, preference): preference = 'UNKNOWN_ENUM_VALUE' self._preference = preference + @property + def patching_mode(self): + """ + Gets the patching_mode of this MaintenanceWindow. + Cloud Exadata infrastructure node patching method, either \"ROLLING\" or \"NONROLLING\". Default value is ROLLING. + + *IMPORTANT*: Non-rolling infrastructure patching involves system down time. See `Oracle-Managed Infrastructure Maintenance Updates`__ for more information. + + __ https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/examaintenance.htm#Oracle + + Allowed values for this property are: "ROLLING", "NONROLLING", 'UNKNOWN_ENUM_VALUE'. + Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. + + + :return: The patching_mode of this MaintenanceWindow. + :rtype: str + """ + return self._patching_mode + + @patching_mode.setter + def patching_mode(self, patching_mode): + """ + Sets the patching_mode of this MaintenanceWindow. + Cloud Exadata infrastructure node patching method, either \"ROLLING\" or \"NONROLLING\". Default value is ROLLING. + + *IMPORTANT*: Non-rolling infrastructure patching involves system down time. See `Oracle-Managed Infrastructure Maintenance Updates`__ for more information. + + __ https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/examaintenance.htm#Oracle + + + :param patching_mode: The patching_mode of this MaintenanceWindow. + :type: str + """ + allowed_values = ["ROLLING", "NONROLLING"] + if not value_allowed_none_or_none_sentinel(patching_mode, allowed_values): + patching_mode = 'UNKNOWN_ENUM_VALUE' + self._patching_mode = patching_mode + + @property + def is_custom_action_timeout_enabled(self): + """ + Gets the is_custom_action_timeout_enabled of this MaintenanceWindow. + If true, enables the configuration of a custom action timeout (waiting period) between database server patching operations. + + + :return: The is_custom_action_timeout_enabled of this MaintenanceWindow. + :rtype: bool + """ + return self._is_custom_action_timeout_enabled + + @is_custom_action_timeout_enabled.setter + def is_custom_action_timeout_enabled(self, is_custom_action_timeout_enabled): + """ + Sets the is_custom_action_timeout_enabled of this MaintenanceWindow. + If true, enables the configuration of a custom action timeout (waiting period) between database server patching operations. + + + :param is_custom_action_timeout_enabled: The is_custom_action_timeout_enabled of this MaintenanceWindow. + :type: bool + """ + self._is_custom_action_timeout_enabled = is_custom_action_timeout_enabled + + @property + def custom_action_timeout_in_mins(self): + """ + Gets the custom_action_timeout_in_mins of this MaintenanceWindow. + Determines the amount of time the system will wait before the start of each database server patching operation. + Custom action timeout is in minutes and valid value is between 15 to 120 (inclusive). + + + :return: The custom_action_timeout_in_mins of this MaintenanceWindow. + :rtype: int + """ + return self._custom_action_timeout_in_mins + + @custom_action_timeout_in_mins.setter + def custom_action_timeout_in_mins(self, custom_action_timeout_in_mins): + """ + Sets the custom_action_timeout_in_mins of this MaintenanceWindow. + Determines the amount of time the system will wait before the start of each database server patching operation. + Custom action timeout is in minutes and valid value is between 15 to 120 (inclusive). + + + :param custom_action_timeout_in_mins: The custom_action_timeout_in_mins of this MaintenanceWindow. + :type: int + """ + self._custom_action_timeout_in_mins = custom_action_timeout_in_mins + @property def months(self): """ diff --git a/src/oci/database/models/update_autonomous_database_details.py b/src/oci/database/models/update_autonomous_database_details.py index ec65801006..0d11bba4d7 100644 --- a/src/oci/database/models/update_autonomous_database_details.py +++ b/src/oci/database/models/update_autonomous_database_details.py @@ -197,6 +197,10 @@ def __init__(self, **kwargs): The value to assign to the scheduled_operations property of this UpdateAutonomousDatabaseDetails. :type scheduled_operations: list[oci.database.models.ScheduledOperationDetails] + :param is_auto_scaling_for_storage_enabled: + The value to assign to the is_auto_scaling_for_storage_enabled property of this UpdateAutonomousDatabaseDetails. + :type is_auto_scaling_for_storage_enabled: bool + """ self.swagger_types = { 'cpu_core_count': 'int', @@ -228,7 +232,8 @@ def __init__(self, **kwargs): 'nsg_ids': 'list[str]', 'customer_contacts': 'list[CustomerContact]', 'is_mtls_connection_required': 'bool', - 'scheduled_operations': 'list[ScheduledOperationDetails]' + 'scheduled_operations': 'list[ScheduledOperationDetails]', + 'is_auto_scaling_for_storage_enabled': 'bool' } self.attribute_map = { @@ -261,7 +266,8 @@ def __init__(self, **kwargs): 'nsg_ids': 'nsgIds', 'customer_contacts': 'customerContacts', 'is_mtls_connection_required': 'isMtlsConnectionRequired', - 'scheduled_operations': 'scheduledOperations' + 'scheduled_operations': 'scheduledOperations', + 'is_auto_scaling_for_storage_enabled': 'isAutoScalingForStorageEnabled' } self._cpu_core_count = None @@ -294,6 +300,7 @@ def __init__(self, **kwargs): self._customer_contacts = None self._is_mtls_connection_required = None self._scheduled_operations = None + self._is_auto_scaling_for_storage_enabled = None @property def cpu_core_count(self): @@ -1253,6 +1260,30 @@ def scheduled_operations(self, scheduled_operations): """ self._scheduled_operations = scheduled_operations + @property + def is_auto_scaling_for_storage_enabled(self): + """ + Gets the is_auto_scaling_for_storage_enabled of this UpdateAutonomousDatabaseDetails. + Indicates if auto scaling is enabled for the Autonomous Database storage. The default value is `FALSE`. + + + :return: The is_auto_scaling_for_storage_enabled of this UpdateAutonomousDatabaseDetails. + :rtype: bool + """ + return self._is_auto_scaling_for_storage_enabled + + @is_auto_scaling_for_storage_enabled.setter + def is_auto_scaling_for_storage_enabled(self, is_auto_scaling_for_storage_enabled): + """ + Sets the is_auto_scaling_for_storage_enabled of this UpdateAutonomousDatabaseDetails. + Indicates if auto scaling is enabled for the Autonomous Database storage. The default value is `FALSE`. + + + :param is_auto_scaling_for_storage_enabled: The is_auto_scaling_for_storage_enabled of this UpdateAutonomousDatabaseDetails. + :type: bool + """ + self._is_auto_scaling_for_storage_enabled = is_auto_scaling_for_storage_enabled + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/database/models/update_exadata_infrastructure_details.py b/src/oci/database/models/update_exadata_infrastructure_details.py index 3b8353dee7..95cad2cebc 100644 --- a/src/oci/database/models/update_exadata_infrastructure_details.py +++ b/src/oci/database/models/update_exadata_infrastructure_details.py @@ -71,6 +71,10 @@ def __init__(self, **kwargs): The value to assign to the time_zone property of this UpdateExadataInfrastructureDetails. :type time_zone: str + :param is_cps_offline_report_enabled: + The value to assign to the is_cps_offline_report_enabled property of this UpdateExadataInfrastructureDetails. + :type is_cps_offline_report_enabled: bool + :param freeform_tags: The value to assign to the freeform_tags property of this UpdateExadataInfrastructureDetails. :type freeform_tags: dict(str, str) @@ -94,6 +98,7 @@ def __init__(self, **kwargs): 'dns_server': 'list[str]', 'ntp_server': 'list[str]', 'time_zone': 'str', + 'is_cps_offline_report_enabled': 'bool', 'freeform_tags': 'dict(str, str)', 'defined_tags': 'dict(str, dict(str, object))' } @@ -112,6 +117,7 @@ def __init__(self, **kwargs): 'dns_server': 'dnsServer', 'ntp_server': 'ntpServer', 'time_zone': 'timeZone', + 'is_cps_offline_report_enabled': 'isCpsOfflineReportEnabled', 'freeform_tags': 'freeformTags', 'defined_tags': 'definedTags' } @@ -129,6 +135,7 @@ def __init__(self, **kwargs): self._dns_server = None self._ntp_server = None self._time_zone = None + self._is_cps_offline_report_enabled = None self._freeform_tags = None self._defined_tags = None @@ -444,6 +451,34 @@ def time_zone(self, time_zone): """ self._time_zone = time_zone + @property + def is_cps_offline_report_enabled(self): + """ + Gets the is_cps_offline_report_enabled of this UpdateExadataInfrastructureDetails. + Indicates whether cps offline diagnostic report is enabled for this Exadata infrastructure. This will allow a customer to quickly check status themselves and fix problems on their end, saving time and frustration + for both Oracle and the customer when they find the CPS in a disconnected state.You can enable offline diagnostic report during Exadata infrastructure provisioning. You can also disable or enable it at any time + using the UpdateExadatainfrastructure API. + + + :return: The is_cps_offline_report_enabled of this UpdateExadataInfrastructureDetails. + :rtype: bool + """ + return self._is_cps_offline_report_enabled + + @is_cps_offline_report_enabled.setter + def is_cps_offline_report_enabled(self, is_cps_offline_report_enabled): + """ + Sets the is_cps_offline_report_enabled of this UpdateExadataInfrastructureDetails. + Indicates whether cps offline diagnostic report is enabled for this Exadata infrastructure. This will allow a customer to quickly check status themselves and fix problems on their end, saving time and frustration + for both Oracle and the customer when they find the CPS in a disconnected state.You can enable offline diagnostic report during Exadata infrastructure provisioning. You can also disable or enable it at any time + using the UpdateExadatainfrastructure API. + + + :param is_cps_offline_report_enabled: The is_cps_offline_report_enabled of this UpdateExadataInfrastructureDetails. + :type: bool + """ + self._is_cps_offline_report_enabled = is_cps_offline_report_enabled + @property def freeform_tags(self): """ diff --git a/src/oci/database/models/update_maintenance_run_details.py b/src/oci/database/models/update_maintenance_run_details.py index 3090157fa6..a592fdc11b 100644 --- a/src/oci/database/models/update_maintenance_run_details.py +++ b/src/oci/database/models/update_maintenance_run_details.py @@ -47,13 +47,33 @@ def __init__(self, **kwargs): Allowed values for this property are: "ROLLING", "NONROLLING" :type patching_mode: str + :param is_custom_action_timeout_enabled: + The value to assign to the is_custom_action_timeout_enabled property of this UpdateMaintenanceRunDetails. + :type is_custom_action_timeout_enabled: bool + + :param custom_action_timeout_in_mins: + The value to assign to the custom_action_timeout_in_mins property of this UpdateMaintenanceRunDetails. + :type custom_action_timeout_in_mins: int + + :param current_custom_action_timeout_in_mins: + The value to assign to the current_custom_action_timeout_in_mins property of this UpdateMaintenanceRunDetails. + :type current_custom_action_timeout_in_mins: int + + :param is_resume_patching: + The value to assign to the is_resume_patching property of this UpdateMaintenanceRunDetails. + :type is_resume_patching: bool + """ self.swagger_types = { 'is_enabled': 'bool', 'time_scheduled': 'datetime', 'is_patch_now_enabled': 'bool', 'patch_id': 'str', - 'patching_mode': 'str' + 'patching_mode': 'str', + 'is_custom_action_timeout_enabled': 'bool', + 'custom_action_timeout_in_mins': 'int', + 'current_custom_action_timeout_in_mins': 'int', + 'is_resume_patching': 'bool' } self.attribute_map = { @@ -61,7 +81,11 @@ def __init__(self, **kwargs): 'time_scheduled': 'timeScheduled', 'is_patch_now_enabled': 'isPatchNowEnabled', 'patch_id': 'patchId', - 'patching_mode': 'patchingMode' + 'patching_mode': 'patchingMode', + 'is_custom_action_timeout_enabled': 'isCustomActionTimeoutEnabled', + 'custom_action_timeout_in_mins': 'customActionTimeoutInMins', + 'current_custom_action_timeout_in_mins': 'currentCustomActionTimeoutInMins', + 'is_resume_patching': 'isResumePatching' } self._is_enabled = None @@ -69,6 +93,10 @@ def __init__(self, **kwargs): self._is_patch_now_enabled = None self._patch_id = None self._patching_mode = None + self._is_custom_action_timeout_enabled = None + self._custom_action_timeout_in_mins = None + self._current_custom_action_timeout_in_mins = None + self._is_resume_patching = None @property def is_enabled(self): @@ -210,6 +238,104 @@ def patching_mode(self, patching_mode): ) self._patching_mode = patching_mode + @property + def is_custom_action_timeout_enabled(self): + """ + Gets the is_custom_action_timeout_enabled of this UpdateMaintenanceRunDetails. + If true, enables the configuration of a custom action timeout (waiting period) between database servers patching operations. + + + :return: The is_custom_action_timeout_enabled of this UpdateMaintenanceRunDetails. + :rtype: bool + """ + return self._is_custom_action_timeout_enabled + + @is_custom_action_timeout_enabled.setter + def is_custom_action_timeout_enabled(self, is_custom_action_timeout_enabled): + """ + Sets the is_custom_action_timeout_enabled of this UpdateMaintenanceRunDetails. + If true, enables the configuration of a custom action timeout (waiting period) between database servers patching operations. + + + :param is_custom_action_timeout_enabled: The is_custom_action_timeout_enabled of this UpdateMaintenanceRunDetails. + :type: bool + """ + self._is_custom_action_timeout_enabled = is_custom_action_timeout_enabled + + @property + def custom_action_timeout_in_mins(self): + """ + Gets the custom_action_timeout_in_mins of this UpdateMaintenanceRunDetails. + Determines the amount of time the system will wait before the start of each database server patching operation. + Specify a number of minutes from 15 to 120. + + + :return: The custom_action_timeout_in_mins of this UpdateMaintenanceRunDetails. + :rtype: int + """ + return self._custom_action_timeout_in_mins + + @custom_action_timeout_in_mins.setter + def custom_action_timeout_in_mins(self, custom_action_timeout_in_mins): + """ + Sets the custom_action_timeout_in_mins of this UpdateMaintenanceRunDetails. + Determines the amount of time the system will wait before the start of each database server patching operation. + Specify a number of minutes from 15 to 120. + + + :param custom_action_timeout_in_mins: The custom_action_timeout_in_mins of this UpdateMaintenanceRunDetails. + :type: int + """ + self._custom_action_timeout_in_mins = custom_action_timeout_in_mins + + @property + def current_custom_action_timeout_in_mins(self): + """ + Gets the current_custom_action_timeout_in_mins of this UpdateMaintenanceRunDetails. + The current custom action timeout between the current database servers during waiting state in addition to custom action timeout, from 0 (zero) to 30 minutes. + + + :return: The current_custom_action_timeout_in_mins of this UpdateMaintenanceRunDetails. + :rtype: int + """ + return self._current_custom_action_timeout_in_mins + + @current_custom_action_timeout_in_mins.setter + def current_custom_action_timeout_in_mins(self, current_custom_action_timeout_in_mins): + """ + Sets the current_custom_action_timeout_in_mins of this UpdateMaintenanceRunDetails. + The current custom action timeout between the current database servers during waiting state in addition to custom action timeout, from 0 (zero) to 30 minutes. + + + :param current_custom_action_timeout_in_mins: The current_custom_action_timeout_in_mins of this UpdateMaintenanceRunDetails. + :type: int + """ + self._current_custom_action_timeout_in_mins = current_custom_action_timeout_in_mins + + @property + def is_resume_patching(self): + """ + Gets the is_resume_patching of this UpdateMaintenanceRunDetails. + If true, then the patching is resumed and the next component will be patched immediately. + + + :return: The is_resume_patching of this UpdateMaintenanceRunDetails. + :rtype: bool + """ + return self._is_resume_patching + + @is_resume_patching.setter + def is_resume_patching(self, is_resume_patching): + """ + Sets the is_resume_patching of this UpdateMaintenanceRunDetails. + If true, then the patching is resumed and the next component will be patched immediately. + + + :param is_resume_patching: The is_resume_patching of this UpdateMaintenanceRunDetails. + :type: bool + """ + self._is_resume_patching = is_resume_patching + def __repr__(self): return formatted_flat_dict(self) diff --git a/src/oci/management_dashboard/dashx_apis_client.py b/src/oci/management_dashboard/dashx_apis_client.py index 35c8b80fbb..e61d381775 100644 --- a/src/oci/management_dashboard/dashx_apis_client.py +++ b/src/oci/management_dashboard/dashx_apis_client.py @@ -322,9 +322,10 @@ def change_management_saved_searches_compartment(self, management_saved_search_i def create_management_dashboard(self, create_management_dashboard_details, **kwargs): """ - Creates a new dashboard. Limit for number of saved searches in a dashboard is 20. Here's an example of how you can use CLI to create a dashboard. For information on the details that must be passed to CREATE, you can use the GET API to obtain the Create.json file: - oci management-dashboard dashboard get --management-dashboard-id \"ocid1.managementdashboard.oc1..dashboardId1\" --query data > Create.json. - You can then modify the Create.json file by removing the\"id\" attribute and making other required changes, and use the oci management-dashboard dashboard create command. + Creates a new dashboard. Limit for number of saved searches in a dashboard is 20. + Here's an example of how you can use CLI to create a dashboard. For information on the details that must be passed to CREATE, you can use the GET API to obtain the Create.json file: + `oci management-dashboard dashboard get --management-dashboard-id \"ocid1.managementdashboard.oc1..dashboardId1\" --query data > Create.json.` + You can then modify the Create.json file by removing the `id` attribute and making other required changes, and use the `oci management-dashboard dashboard create` command. :param oci.management_dashboard.models.CreateManagementDashboardDetails create_management_dashboard_details: (required) @@ -408,10 +409,10 @@ def create_management_dashboard(self, create_management_dashboard_details, **kwa def create_management_saved_search(self, create_management_saved_search_details, **kwargs): """ - Creates a new saved search. Here's an example of how you can use CLI to create a saved search. For information on the details that must be passed to CREATE, you can use the GET API to obtain the Create.json file: - - oci management-dashboard saved-search get --management-saved-search-id ocid1.managementsavedsearch.oc1..savedsearchId1 --query data > Create.json. - You can then modify the Create.json file by removing the \"id\" attribute and making other required changes, and use the oci management-dashboard saved-search create command. + Creates a new saved search. + Here's an example of how you can use CLI to create a saved search. For information on the details that must be passed to CREATE, you can use the GET API to obtain the Create.json file: + `oci management-dashboard saved-search get --management-saved-search-id ocid1.managementsavedsearch.oc1..savedsearchId1 --query data > Create.json`. + You can then modify the Create.json file by removing the `id` attribute and making other required changes, and use the `oci management-dashboard saved-search create` command. :param oci.management_dashboard.models.CreateManagementSavedSearchDetails create_management_saved_search_details: (required) @@ -677,7 +678,9 @@ def delete_management_saved_search(self, management_saved_search_id, **kwargs): def export_dashboard(self, export_dashboard_id, **kwargs): """ - Exports an array of dashboards and their saved searches. Export is designed to work with importDashboard. Here's an example of how you can use CLI to export a dashboard. $oci management-dashboard dashboard export --query data --export-dashboard-id \"{\\\"dashboardIds\\\":[\\\"ocid1.managementdashboard.oc1..dashboardId1\\\"]}\" > dashboards.json + Exports an array of dashboards and their saved searches. Export is designed to work with importDashboard. + Here's an example of how you can use CLI to export a dashboard: + `$oci management-dashboard dashboard export --query data --export-dashboard-id \"{\\\"dashboardIds\\\":[\\\"ocid1.managementdashboard.oc1..dashboardId1\\\"]}\" > dashboards.json` :param str export_dashboard_id: (required) @@ -959,12 +962,12 @@ def get_management_saved_search(self, management_saved_search_id, **kwargs): def import_dashboard(self, management_dashboard_import_details, **kwargs): """ - Imports an array of dashboards and their saved searches. Here's an example of how you can use CLI to import a dashboard. For information on the details that must be passed to IMPORT, you can use the EXPORT API to obtain the Import.json file: - oci management-dashboard dashboard export --query data --export-dashboard-id \"{\\\"dashboardIds\\\":[\\\"ocid1.managementdashboard.oc1..dashboardId1\\\"]}\" > Import.json. - Note that import API updates the resource if it already exist, and creates a new resource if it does not exist. To import to a different compartment, edit and change the compartmentId to the desired compartment OCID. - Here is an example of how you can use CLI to do import: - - oci management-dashboard dashboard import --from-json file://Import.json + Imports an array of dashboards and their saved searches. + Here's an example of how you can use CLI to import a dashboard. For information on the details that must be passed to IMPORT, you can use the EXPORT API to obtain the Import.json file: + `oci management-dashboard dashboard export --query data --export-dashboard-id \"{\\\"dashboardIds\\\":[\\\"ocid1.managementdashboard.oc1..dashboardId1\\\"]}\" > Import.json`. + Note that import API updates the resource if it already exists, and creates a new resource if it does not exist. To import to a different compartment, edit and change the compartmentId to the desired compartment OCID. + Here's an example of how you can use CLI to import: + `oci management-dashboard dashboard import --from-json file://Import.json` :param oci.management_dashboard.models.ManagementDashboardImportDetails management_dashboard_import_details: (required) diff --git a/src/oci/management_dashboard/models/create_management_saved_search_details.py b/src/oci/management_dashboard/models/create_management_saved_search_details.py index 779de011ca..53ce54990e 100644 --- a/src/oci/management_dashboard/models/create_management_saved_search_details.py +++ b/src/oci/management_dashboard/models/create_management_saved_search_details.py @@ -29,6 +29,14 @@ class CreateManagementSavedSearchDetails(object): #: This constant has a value of "WIDGET_DONT_SHOW_IN_DASHBOARD" TYPE_WIDGET_DONT_SHOW_IN_DASHBOARD = "WIDGET_DONT_SHOW_IN_DASHBOARD" + #: A constant which can be used with the type property of a CreateManagementSavedSearchDetails. + #: This constant has a value of "FILTER_SHOW_IN_DASHBOARD" + TYPE_FILTER_SHOW_IN_DASHBOARD = "FILTER_SHOW_IN_DASHBOARD" + + #: A constant which can be used with the type property of a CreateManagementSavedSearchDetails. + #: This constant has a value of "FILTER_DONT_SHOW_IN_DASHBOARD" + TYPE_FILTER_DONT_SHOW_IN_DASHBOARD = "FILTER_DONT_SHOW_IN_DASHBOARD" + def __init__(self, **kwargs): """ Initializes a new CreateManagementSavedSearchDetails object with values from keyword arguments. @@ -72,7 +80,7 @@ def __init__(self, **kwargs): :param type: The value to assign to the type property of this CreateManagementSavedSearchDetails. - Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD" + Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD" :type type: str :param ui_config: @@ -405,7 +413,7 @@ def type(self): **[Required]** Gets the type of this CreateManagementSavedSearchDetails. Determines how the saved search is displayed in a dashboard. - Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD" + Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD" :return: The type of this CreateManagementSavedSearchDetails. @@ -423,7 +431,7 @@ def type(self, type): :param type: The type of this CreateManagementSavedSearchDetails. :type: str """ - allowed_values = ["SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD"] + allowed_values = ["SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD"] if not value_allowed_none_or_none_sentinel(type, allowed_values): raise ValueError( "Invalid value for `type`, must be None or one of {0}" diff --git a/src/oci/management_dashboard/models/management_saved_search.py b/src/oci/management_dashboard/models/management_saved_search.py index e96a9128bf..bf99564ef3 100644 --- a/src/oci/management_dashboard/models/management_saved_search.py +++ b/src/oci/management_dashboard/models/management_saved_search.py @@ -29,6 +29,14 @@ class ManagementSavedSearch(object): #: This constant has a value of "WIDGET_DONT_SHOW_IN_DASHBOARD" TYPE_WIDGET_DONT_SHOW_IN_DASHBOARD = "WIDGET_DONT_SHOW_IN_DASHBOARD" + #: A constant which can be used with the type property of a ManagementSavedSearch. + #: This constant has a value of "FILTER_SHOW_IN_DASHBOARD" + TYPE_FILTER_SHOW_IN_DASHBOARD = "FILTER_SHOW_IN_DASHBOARD" + + #: A constant which can be used with the type property of a ManagementSavedSearch. + #: This constant has a value of "FILTER_DONT_SHOW_IN_DASHBOARD" + TYPE_FILTER_DONT_SHOW_IN_DASHBOARD = "FILTER_DONT_SHOW_IN_DASHBOARD" + #: A constant which can be used with the lifecycle_state property of a ManagementSavedSearch. #: This constant has a value of "ACTIVE" LIFECYCLE_STATE_ACTIVE = "ACTIVE" @@ -76,7 +84,7 @@ def __init__(self, **kwargs): :param type: The value to assign to the type property of this ManagementSavedSearch. - Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. :type type: str @@ -447,7 +455,7 @@ def type(self): **[Required]** Gets the type of this ManagementSavedSearch. Determines how the saved search is displayed in a dashboard. - Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. @@ -466,7 +474,7 @@ def type(self, type): :param type: The type of this ManagementSavedSearch. :type: str """ - allowed_values = ["SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD"] + allowed_values = ["SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD"] if not value_allowed_none_or_none_sentinel(type, allowed_values): type = 'UNKNOWN_ENUM_VALUE' self._type = type diff --git a/src/oci/management_dashboard/models/management_saved_search_for_import_details.py b/src/oci/management_dashboard/models/management_saved_search_for_import_details.py index 6c8e35d219..a33708e339 100644 --- a/src/oci/management_dashboard/models/management_saved_search_for_import_details.py +++ b/src/oci/management_dashboard/models/management_saved_search_for_import_details.py @@ -29,6 +29,14 @@ class ManagementSavedSearchForImportDetails(object): #: This constant has a value of "WIDGET_DONT_SHOW_IN_DASHBOARD" TYPE_WIDGET_DONT_SHOW_IN_DASHBOARD = "WIDGET_DONT_SHOW_IN_DASHBOARD" + #: A constant which can be used with the type property of a ManagementSavedSearchForImportDetails. + #: This constant has a value of "FILTER_SHOW_IN_DASHBOARD" + TYPE_FILTER_SHOW_IN_DASHBOARD = "FILTER_SHOW_IN_DASHBOARD" + + #: A constant which can be used with the type property of a ManagementSavedSearchForImportDetails. + #: This constant has a value of "FILTER_DONT_SHOW_IN_DASHBOARD" + TYPE_FILTER_DONT_SHOW_IN_DASHBOARD = "FILTER_DONT_SHOW_IN_DASHBOARD" + def __init__(self, **kwargs): """ Initializes a new ManagementSavedSearchForImportDetails object with values from keyword arguments. @@ -72,7 +80,7 @@ def __init__(self, **kwargs): :param type: The value to assign to the type property of this ManagementSavedSearchForImportDetails. - Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. :type type: str @@ -406,7 +414,7 @@ def type(self): **[Required]** Gets the type of this ManagementSavedSearchForImportDetails. Determines how the saved search is displayed in a dashboard. - Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. @@ -425,7 +433,7 @@ def type(self, type): :param type: The type of this ManagementSavedSearchForImportDetails. :type: str """ - allowed_values = ["SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD"] + allowed_values = ["SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD"] if not value_allowed_none_or_none_sentinel(type, allowed_values): type = 'UNKNOWN_ENUM_VALUE' self._type = type diff --git a/src/oci/management_dashboard/models/management_saved_search_summary.py b/src/oci/management_dashboard/models/management_saved_search_summary.py index c90f3ac881..b318ed49ec 100644 --- a/src/oci/management_dashboard/models/management_saved_search_summary.py +++ b/src/oci/management_dashboard/models/management_saved_search_summary.py @@ -29,6 +29,14 @@ class ManagementSavedSearchSummary(object): #: This constant has a value of "WIDGET_DONT_SHOW_IN_DASHBOARD" TYPE_WIDGET_DONT_SHOW_IN_DASHBOARD = "WIDGET_DONT_SHOW_IN_DASHBOARD" + #: A constant which can be used with the type property of a ManagementSavedSearchSummary. + #: This constant has a value of "FILTER_SHOW_IN_DASHBOARD" + TYPE_FILTER_SHOW_IN_DASHBOARD = "FILTER_SHOW_IN_DASHBOARD" + + #: A constant which can be used with the type property of a ManagementSavedSearchSummary. + #: This constant has a value of "FILTER_DONT_SHOW_IN_DASHBOARD" + TYPE_FILTER_DONT_SHOW_IN_DASHBOARD = "FILTER_DONT_SHOW_IN_DASHBOARD" + #: A constant which can be used with the lifecycle_state property of a ManagementSavedSearchSummary. #: This constant has a value of "ACTIVE" LIFECYCLE_STATE_ACTIVE = "ACTIVE" @@ -76,7 +84,7 @@ def __init__(self, **kwargs): :param type: The value to assign to the type property of this ManagementSavedSearchSummary. - Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. :type type: str @@ -440,7 +448,7 @@ def type(self): **[Required]** Gets the type of this ManagementSavedSearchSummary. Determines how the saved search is displayed in a dashboard. - Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", 'UNKNOWN_ENUM_VALUE'. + Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD", 'UNKNOWN_ENUM_VALUE'. Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'. @@ -459,7 +467,7 @@ def type(self, type): :param type: The type of this ManagementSavedSearchSummary. :type: str """ - allowed_values = ["SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD"] + allowed_values = ["SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD"] if not value_allowed_none_or_none_sentinel(type, allowed_values): type = 'UNKNOWN_ENUM_VALUE' self._type = type diff --git a/src/oci/management_dashboard/models/update_management_saved_search_details.py b/src/oci/management_dashboard/models/update_management_saved_search_details.py index 209abf1140..d53642c455 100644 --- a/src/oci/management_dashboard/models/update_management_saved_search_details.py +++ b/src/oci/management_dashboard/models/update_management_saved_search_details.py @@ -29,6 +29,14 @@ class UpdateManagementSavedSearchDetails(object): #: This constant has a value of "WIDGET_DONT_SHOW_IN_DASHBOARD" TYPE_WIDGET_DONT_SHOW_IN_DASHBOARD = "WIDGET_DONT_SHOW_IN_DASHBOARD" + #: A constant which can be used with the type property of a UpdateManagementSavedSearchDetails. + #: This constant has a value of "FILTER_SHOW_IN_DASHBOARD" + TYPE_FILTER_SHOW_IN_DASHBOARD = "FILTER_SHOW_IN_DASHBOARD" + + #: A constant which can be used with the type property of a UpdateManagementSavedSearchDetails. + #: This constant has a value of "FILTER_DONT_SHOW_IN_DASHBOARD" + TYPE_FILTER_DONT_SHOW_IN_DASHBOARD = "FILTER_DONT_SHOW_IN_DASHBOARD" + def __init__(self, **kwargs): """ Initializes a new UpdateManagementSavedSearchDetails object with values from keyword arguments. @@ -68,7 +76,7 @@ def __init__(self, **kwargs): :param type: The value to assign to the type property of this UpdateManagementSavedSearchDetails. - Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD" + Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD" :type type: str :param ui_config: @@ -374,7 +382,7 @@ def type(self): Gets the type of this UpdateManagementSavedSearchDetails. Determines how the saved search is displayed in a dashboard. - Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD" + Allowed values for this property are: "SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD" :return: The type of this UpdateManagementSavedSearchDetails. @@ -392,7 +400,7 @@ def type(self, type): :param type: The type of this UpdateManagementSavedSearchDetails. :type: str """ - allowed_values = ["SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD"] + allowed_values = ["SEARCH_SHOW_IN_DASHBOARD", "SEARCH_DONT_SHOW_IN_DASHBOARD", "WIDGET_SHOW_IN_DASHBOARD", "WIDGET_DONT_SHOW_IN_DASHBOARD", "FILTER_SHOW_IN_DASHBOARD", "FILTER_DONT_SHOW_IN_DASHBOARD"] if not value_allowed_none_or_none_sentinel(type, allowed_values): raise ValueError( "Invalid value for `type`, must be None or one of {0}" diff --git a/src/oci/version.py b/src/oci/version.py index 2e7153f9fc..e07a14f933 100644 --- a/src/oci/version.py +++ b/src/oci/version.py @@ -2,4 +2,4 @@ # Copyright (c) 2016, 2022, 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.58.0" +__version__ = "2.59.0"